栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 );


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号