PDO SQL状态为“ 00000”,但仍然出错?[重复]

PDO SQL状态为“ 00000”,但仍然出错?[重复],第1张

PDO SQL状态为“ 00000”,但仍然出错?[重复]

这是因为

$pdo->errorInfo()
引用成功执行的最后一条语句。由于
$sql->execute()
返回false,因此它不能引用该语句(不引用任何内容或引用之前的查询)。

至于为什么

$sql->execute()
返回false,我不知道……您的
$params
数组或数据库连接有问题。

PDO :: errorCode —提取与数据库句柄上的最后一个 *** 作关联的SQLSTATE

注意:PHP手册(http://php.net/manual/zh/pdo.errorinfo.php)并未确切定义“对数据库句柄的最后 *** 作”的含义,但是如果绑定参数存在问题,则说明错误会在PDO内部发生,并且与数据库没有任何交互。可以肯定地说,如果

$pdo->execute()
return
true
,那
$pdo->errorInfo()
是有效的。如果
$pdo->execute()
返回
false
$pdo->errorInfo()
则文档中的行为并不清楚。如果我从我的经验中正确回忆起
true
,即使MySQL返回错误,也执行execute
return ,
false
如果未执行任何 *** 作,则返回return。由于文档不是特定的,因此它可能是特定于db驱动程序的。

该答案反映了截至2012年9月时的实际经验。正如用户指出的那样,文档未明确重申这种解释。它也可能只是反映了特定的数据库驱动程序实现的,但它应该永远是真实的,如果

$pdo->execute()
回报率
true
,这
$pdo->errorInfo()
是有效的。

您可能还需要在连接顺序中设置 PDO :: ERRMODE_EXCEPTION 。异常处理无需检查和查询错误。

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5101422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存