我正在尝试使用PDO插入数据库。
这是我的代码:
$SQLinsert = $odb->prepare("INSERT INTO `sites` VALUES(NULL, :site, :username)");
$SQLinsert -> execute(array(':site' => $site, ':username' => $user));
我添加了PDO错误报告,我收到此错误:
Array ( [0] => 00000 [1] => [2] => )
答案 0 :(得分:5)
当SQL出错时,PDO不会给出错误消息。您可以使用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)
答案 1 :(得分:0)
您可以使用带有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();
}
或者您需要在数据库连接中关注attribute
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);