PHP PDO准备插入 - 不插入数据并且不显示错误

2by*_*2by 4 php mysql pdo insert

这个问题让我发疯,我尝试了一切.是不是给我任何错误,但它也没有向数据库插入任何内容.数据库连接很好,应该没有拼写错误.请看一下,看看你是否能找到问题:

$err = array();

if (isset($_POST['submit'])) {

    $ip = gethostbyname($_SERVER['REMOTE_ADDR']);
    $date = "2012-02-02 02:02:02"; //Example
    $uploader_name = $_POST['uploader_name'];

    // Validation happens here...


    if (empty($err)) {

        $host = "host";
        $dbname = "db";
        $user = "user";
        $pass = "pass";

        try {
            $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);  

            $sql = "INSERT INTO `table` (`ip`, `date`, `uploader_name`) 
                    VALUES (:ip, :date, :uploader_name)";
            $stmt = $dbh->prepare($sql);

            # the data we want to insert  
            $params = array(
                ':ip' => $ip,
                ':date' => $date,
                ':uploader_name' => $uploader_name
            );


            $stmt->execute($params);

            $dbh = null;

        } catch(PDOException $pe) {
            die('SQL Error');
        }


        if (empty($err)) {
            $err[] = "Success!";
        }   
    }

}
Run Code Online (Sandbox Code Playgroud)

此外,我确定它到达插入部分,因为我收到"成功"消息.

Nat*_*ord 10

使用此代码执行您的语句.如果存在非致命错误,则会显示该错误.

$stmt->execute($params) or die(print_r($stmt->errorInfo(), true));
Run Code Online (Sandbox Code Playgroud)

几乎可以肯定,您的db用户没有权限执行您要求针对您尝试执行的表的语句.