我的页面上没有错误,但我需要将myqli调用更改为pdo,因为我需要一个准备好的语句调用,我不知道需要传递多少参数,看起来我可以通过一个数组参数与pdo .
我读了on this page:
警告!如果您的应用程序没有捕获从PDO构造函数抛出的异常,则zend引擎采取的默认操作是终止脚本并显示返回跟踪 . 此回溯可能会显示完整的数据库连接详细信息,包括用户名和密码 . 您有责任通过显式(通过catch语句)或通过set_exception_handler()隐式捕获此异常 .
我之前从未使用过pdo,有些教程没有指出我可以在不知情的情况下泄露我的用户名/密码这一事实 .
我应该把每个查询或只是 new PDO();
放在 try/catch
?这是好习惯吗?我应该使用 set_exception_handler()
超过 try/catch
吗?
1 回答
TL;DR: 没有
您的大多数查询都不会产生异常 .
当您的项目处于开发阶段时,未捕获的异常将允许您在SQL代码中查找错误 . 当项目投入 生产环境 时,只有您看到的异常应该是预期的 . 像“唯一密钥违规”,一些外键限制 .
基本上,在 生产环境 代码中,您应该只有
try-catch
块围绕查询,其中异常是预期逻辑的一部分 .