为了账号安全,请及时绑定邮箱和手机立即绑定

如何从PDO中抽取错误信息?

如何从PDO中抽取错误信息?

PHP
慕娘9325324 2019-05-30 16:33:03
如何从PDO中抽取错误信息?我似乎无法从PDO获得任何错误消息:#$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );try {   $sth = $dbh->prepare('@$%T$!!!');   print_r($sth);   print_r($dbh->errorInfo());} catch (PDOException $e) {     echo $e->getMessage();}它只发出:PDOStatement Object(     [queryString] => @$%T$!!!)Array(     [0] => 00000     [1] =>     [2] =>)塞塔贡帮不了什么忙。它是PHP5.3.3 Apache2.0处理程序启用MySQL的PDO驱动程序客户端API版本mysqlnd 5.0.7dev-091210-$修订:300533美元我能做些什么来获得错误信息?
查看完整描述

4 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

塞塔贡将要导致PDO抛出错误或异常-最近一次执行查询。

对于模拟准备的语句,没有签入。prepare():

模拟准备的语句不与数据库服务器通信,因此PDO:PREY()不检查语句。

但是会有一个execute()当查询被发送到服务器时。

但是,MySQL驱动程序支持自MySQL4.1以来编写的本机语句,因此这不应该适用。使用

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

对您使用的查询造成异常。


查看完整回答
反对 回复 2019-05-30
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

我也是想从errorInfo()在数据库句柄级别,但我最终从语句级别获得了以下信息:PDOStatement::errorInfo()

每个PHP网站:

PDO:errorInfo()只检索直接在数据库句柄上执行的操作的错误信息。如果通过PDO:prep()或PDO:Query()创建PDOStatement对象并调用语句句柄上的错误,则PDO:ErrorInfo()不会反映语句句柄中的错误。必须调用PDOStatement:errorInfo()来返回对特定语句句柄执行的操作的错误信息。


查看完整回答
反对 回复 2019-05-30
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

你得先execute查询,然后检查错误:所以这样做:

 $sth->execute();

然后检查错误。如果你有任何错误的话,你会得到错误的。


查看完整回答
反对 回复 2019-05-30
  • 4 回答
  • 0 关注
  • 796 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信