我应该尝试/捕获每个查询吗?
我的页面没有错误,但我需要将我的mysqli调用改为pdo,因为我需要一个预先准备好的语句调用,我不知道需要传递多少参数,而且好像我可以传递一个数组参数与pdo。
我在这个页面上阅读:
警告! 如果您的应用程序没有捕获到从PDO构造函数抛出的异常,则zend引擎采取的默认操作是终止脚本并显示回溯。 这条反向跟踪可能会显示完整的数据库连接详细信息,包括用户名和密码。 您有责任明确地(通过catch语句)或通过set_exception_handler()隐式捕获此异常。
我以前从未使用过pdo,有些教程没有指出我可以在不知道的情况下放弃用户名/密码的事实。
我应该把每个查询或只是new PDO();
在try/catch
? 这是不错的做法吗? 我应该通过try/catch
使用set_exception_handler()
吗?
TL; DR:没有
大部分查询不会产生异常。
当您的项目正在开发中时,未捕获的异常会让您发现SQL代码中的错误。 当项目投入生产时,只有你所看到的例外应该是预期的例外。 像“独特的密钥违规”,一些外键限制。
基本上,在生产代码中,应该只有try-catch
块围绕查询,其中异常是预期逻辑的一部分。