我通常使用以下语句进行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时将存在错误。
在什么情况下我需要测试执行是真还是假?
答案 0 :(得分:7)
取决于PDO::ATTR_ERRMODE
,如Errors and error handling章节所述。
如果您将PDO配置为抛出异常(PDO::ERRMODE_EXCEPTION
),那么不会,PDO会在出错时自动抛出异常。
在任何其他情况下(使用默认的PDO连接选项或明确设置PDO::ERRMODE_SILENT
或PDO::ERRMODE_WARNING
)然后是,您需要手动验证每个操作的成功。
PDO::ERRMODE_EXCEPTION
不是默认值是没有用的,但是,您知道,PHP有一些隐藏有用的错误消息的历史记录,因为这些错误的用户友好性。
答案 1 :(得分:0)
如果要检查传递的查询是否最常见。
如果$result
为false,则表示查询未通过,$query
中有错误,以后您可能需要查看。
您可以创建一些登录信息,检查$result
是否为false并抛出一些准备好的异常,或者用它构建您的应用程序。
基本上如果$result
为false,您可以为它创建一些自定义逻辑。