如何进行PHP PDO插入


How to do a PHP PDO insert

我正在尝试使用PDO插入数据库。

这是我的代码:

$SQLinsert = $odb->prepare("INSERT INTO `sites` VALUES(NULL, :site, :username)");
$SQLinsert -> execute(array(':site' => $site, ':username' => $user));

我添加了PDO错误报告,我得到了这个错误:

Array ( [0] => 00000 [1] => [2] => )

PDO在SQL出错时不会给出错误消息。您可以使用errorInfo来获取SQL错误:

if ($SQLinsert -> execute(array(':site' => $site, ':username' => $user))) {
    // ok
} else {
    print_r($odb->errorInfo());
}

顺便说一下,我对SQL的猜测是,您的列比这三个多。如果是这种情况,请添加列名以使其工作:

INSERT INTO `sites` (col1, site, username) VALUES(NULL, :site, :username)

您可以使用带有get_message()方法的php try-catch块。

  try{ 
        $SQLinsert = $odb -> prepare("INSERT INTO `sites` VALUES(NULL, :site, :username)");
        $SQLinsert -> execute(array(':site' => $site, ':username' => $user));
    } 
    catch(PDOException $exception){ 
        print  $exception->getMessage(); 
    } 

或者您需要在数据库连接中使用以下属性

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);