首页 文章

pdo我应该尝试/捕获每个查询?

提问于
浏览
0

我的页面上没有错误,但我需要将myqli调用更改为pdo,因为我需要一个准备好的语句调用,我不知道需要传递多少参数,看起来我可以通过一个数组参数与pdo .

我读了on this page

警告!如果您的应用程序没有捕获从PDO构造函数抛出的异常,则zend引擎采取的默认操作是终止脚本并显示返回跟踪 . 此回溯可能会显示完整的数据库连接详细信息,包括用户名和密码 . 您有责任通过显式(通过catch语句)或通过set_exception_handler()隐式捕获此异常 .

我之前从未使用过pdo,有些教程没有指出我可以在不知情的情况下泄露我的用户名/密码这一事实 .

我应该把每个查询或只是 new PDO(); 放在 try/catch ?这是好习惯吗?我应该使用 set_exception_handler() 超过 try/catch 吗?

1 回答

  • 2

    TL;DR: 没有

    您的大多数查询都不会产生异常 .

    当您的项目处于开发阶段时,未捕获的异常将允许您在SQL代码中查找错误 . 当项目投入 生产环境 时,只有您看到的异常应该是预期的 . 像“唯一密钥违规”,一些外键限制 .

    基本上,在 生产环境 代码中,您应该只有 try-catch 块围绕查询,其中异常是预期逻辑的一部分 .

相关问题