2014-02-06 237 views
1

PHP手册(http://www.php.net/manual/en/pdostatement.execute.php)在Return Values处提到:“成功返回TRUE或失败时返回FALSE。”如何处理PHP PDO execute()返回false?

我正在写几个PDO :: execute语句的php脚本。 PHP:PDO确实会返回FALSE时应该做什么?停止整个脚本(调用exit())或者继续或其他操作? Execute()返回false的可能原因是什么?或者只是返回错误只是一个非常理论的情景,几乎从来没有发生在卷轴上?

+0

如果您尝试进行数据库模式不允许的更改,由于像唯一值,外键,重复条目等约束,它可能会返回false。 – jgroenen

回答

1

这实际上取决于您执行的是哪种查询。如果它是交易的一部分,则可能需要回滚它。 如果后续程序执行至关重要,那么您肯定会想要停止它并显示错误消息。 如果你的程序没有它,你可以忽略它或以任何你认为正确的方式处理。

当出现错误时它返回false。这可能是由于缺乏连接,不正确的参数等造成的。

+0

thnx。我相信我读过某处(我不是sql专家),在MySQL中使用COMMIT和ROLLBACK(?)有一些限制,但我必须再次查看。我从你的回答中得出结论,无论如何推荐实施错误管理...... – Joppo

+0

有不同的存储引擎,他们可能会以不同的方式处理事务。我并不是这方面的专家,但是我自己并没有在mysql中遇到任何交易问题。错误管理肯定是一个很好的方法。然而,实施它的最佳方式仍然取决于谁和将如何使用它。 – Shocked

2

这取决于您的程序的查询执行的重要性。 没有处理/忽略它的标准方法。

它可能会帮助您使用PDO的功能,因此您可以通过不同的方式处理不同的错误。

看看在errorCode()手册页,其中一个​​未能给出的第一个例子。