$PDO_db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=UTF-8' , DB_USER, DB_PWD);
$sth = $PDO_db->prepare($insert);
$arrPar = array(':nome' => $nome);
$r = $sth->execute($arrPar);
var_dump($arrPar);
print_r($PDO_db->errorInfo());
var_dump($r);
exit();
Supppose了$插入statemet包含SQL错误,上面我已经注意到下面的代码:如何使用PDO(mysql)正确调试Insert语句?
代码A
print_r($PDO_db->errorInfo());
将输出反正:
Array ( [0] => 00000 [1] => [2] => )
但var_dump($ s)为假
如果在插入声明中我有一些
placemark
例如:name
"Insert into mytable (name) VALUE(:name);"
然后在再次
$arrPar = array(':name' => $value)
与$value=NULL
print_r($PDO_db->errorInfo());
将输出:
Array ( [0] => 00000 [1] => [2] => )
但后续代码var_dump($ s)为假
所以我“M想知道如果方法errorInfo,这应该给我一个错误说明,静静地静默错误什么是正确的方式来调试与PDO的MySQL语句?
PDO::errorInfo()
返回的错误信息”的阵列
您需要将您的PDO声明与变量绑定。 – hjpotter92
我会添加'$ PDO_db-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);'。这应该会让事情更加明显。 –
向我们展示'$ insert'是什么。 – Stegrex