当前位置:  开发笔记 > 编程语言 > 正文

PDO故障排除:执行预准备语句时未捕获错误

如何解决《PDO故障排除:执行预准备语句时未捕获错误》经验,为你挑选了1个好方法。

我使用PDO遇到了一个问题,因为没有发现错误.

代码很简单,工作得很好,我只需要包含一个样本以避免混淆:

$sql = 'INSERT INTO somedatetable (something) 
        VALUES (:something) 
        ON DUPLICATE KEY UPDATE something=:something';

$values = array(":something" => $something);

try {
    $stmt = $dbh->prepare($sql);    
    $stmt->execute($values);    
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage() . "
\n"; }

代码工作正常,但是当处理新模块时,我遇到了一个问题,即没有添加或修改记录,也没有发现错误.

$stmt返回,false但我没有线索为什么或如何找到错误.

解决方案最后很简单,我使用的是一个对表没有写权限的有限MySQL用户.使用mysql时,这些错误总会立即显示,但是使用PDO我不知道如何找到它们.

如何让PHP/PDO显示或捕获这些类型的数据库错误?



1> Ryan Graham..:

PDO::errorInfo() 要么 PDOStatement->errorInfo()

至于例外,请检查PDO中"错误和错误处理"的文档.默认情况下不会抛出异常,这就是您可能希望启用它们的原因.

另见:

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

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有