【发布时间】:2012-09-19 21:53:09
【问题描述】:
每隔一段时间,我都会收到类似 PDO 的错误:
错误!:SQLSTATE[HY093]:无效参数号:未定义参数
有没有什么方法可以得到更具体的错误,比如行号、文件名、缺少的参数等,而不是模糊的消息?
【问题讨论】:
-
设置 PDO 以引发异常 (
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);)。这将导致您的应用程序死亡并在它发生时转储堆栈跟踪 - 我这样做是理所当然的,并将每个 PDO 操作/操作集包装在 try/catch 中,并酌情进行错误处理。但坦率地说,如果您的错误日志没有记录文件/行号并且您需要这样做,那么它并不重要。 -
@DaveRandom - 我已经设置了这些设置,并且我的查询位于 try/catch 块中。我想这就是我遇到错误的原因。
-
那么在这种情况下,大概你在
catch块中做类似echo $e->getMessage()的事情?那么将其改为echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine();,您将获得所需的信息。见php.net/manual/en/class.exception.php -
@DaveRandom - 谢谢,这很有帮助!你想把它作为答案发布吗?
标签: php error-handling pdo