我似乎无法从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] =>
)
setAttribute帮不上什么忙。
它是PHP 5.3.3 Apache 2.0处理程序
已启用MySQL的PDO驱动程序
客户端API版本mysqlnd5.0.7-dev- 091210 - $Revision: 300533 $
如何获取错误信息?
发布于 2015-08-18 14:20:12
这将打印错误代码及其对应的详细消息。
建议:这只是一个演示。仅用于调试目的。在发布版本中,不要启用以向公众显示错误消息。
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;
发布于 2010-09-16 20:11:45
您需要首先对查询执行execute
操作,然后检查错误:因此,请这样做:
$sth->execute();
然后检查错误。那么你将会得到错误,如果有的话。
https://stackoverflow.com/questions/3726505
复制相似问题