对于pdo MySQL查询,我通常使用如下语句
$query = $db->prepare('MySQL statement');
$result = $query->execute(array())
Then use $query->fetch or fetchcolumn (to check Count(*)) to fetch data.
我的问题是 - 是否需要测试 $result 是否为真?在生产环境中,如果 MySQL 宕机,当我们声明新的 PDO 时将存在错误。
什么情况下需要测试execute是true还是false?
最佳答案
这取决于PDO::ATTR_ERRMODE
,如 Errors and error handling 中所述章。
如果您将 PDO 配置为抛出异常 (PDO::ERRMODE_EXCEPTION
) 则不会,PDO 将在出错时自动抛出异常。
在任何其他情况下(使用默认 PDO 连接选项或显式设置 PDO::ERRMODE_SILENT
或 PDO::ERRMODE_WARNING
)那么是的,您需要手动验证每个单独操作是否成功。
PDO::ERRMODE_EXCEPTION
没用不是默认值,但是,您知道,PHP 有隐藏有用的错误消息的历史,以达到一些被误导的用户友好性。
关于php - 是否需要在 PDO 中测试 execute() 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327855/