首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从PDO中挤出错误信息?

如何从PDO中挤出错误信息?
EN

Stack Overflow用户
提问于 2010-09-16 20:08:46
回答 2查看 32.5K关注 0票数 59

我似乎无法从PDO获得任何错误消息:

代码语言:javascript
复制
#$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();
}

它只给出了:

代码语言:javascript
复制
PDOStatement Object
(
    [queryString] => @$%T$!!!
)
Array
(
    [0] => 00000
    [1] =>
    [2] =>
)

setAttribute帮不上什么忙。

它是PHP 5.3.3 Apache 2.0处理程序

已启用MySQL的PDO驱动程序

客户端API版本mysqlnd5.0.7-dev- 091210 - $Revision: 300533 $

如何获取错误信息?

EN

回答 2

Stack Overflow用户

发布于 2015-08-18 14:20:12

这将打印错误代码及其对应的详细消息。

建议:这只是一个演示。仅用于调试目的。在发布版本中,不要启用以向公众显示错误消息。

代码语言:javascript
复制
try{
connection=$this->get_connection();//here i brought my connection string
connection->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
connection->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
/**
Do your works here..
//$statement=$connection->prepare($sql);
//if you are using errorInfo use after prepare statement before execute.here in this method i am not using it.
//print_r($statement->errorInfo());
**/

$statement->execute();
}
catch(PDOException $e) {
              //this will echo error code with detail
              //example: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'nasme' in 'field list'
              echo $e->getMessage();
            }
//$statement=null;
票数 3
EN

Stack Overflow用户

发布于 2010-09-16 20:11:45

您需要首先对查询执行execute操作,然后检查错误:因此,请这样做:

代码语言:javascript
复制
 $sth->execute();

然后检查错误。那么你将会得到错误,如果有的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3726505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档