【发布时间】:2023-03-19 17:41:01
【问题描述】:
我有一段代码,根据请求的 URL,将包含其他 14 个文件之一。这十四个文件中的一些需要连接到三个不同数据库之一,并且可以随时添加其他文件。
我不想默认打开所有三个数据库的 PDO 连接,因为它浪费资源并且会减慢执行时间。所以我的想法是将所有 SQL 查询包装在一个函数中。第一次在未打开的 PDO 连接上执行查询时,try {} 错误处理程序可以捕获它,找出问题所在(在这种情况下连接不存在),然后打开连接并重新执行询问。这样,数据库只在需要时才被连接——只要连接字符串(主机、数据库、用户名、密码)都事先定义好,我看不出它有什么问题。
但是,我需要继续执行此操作,并且在大约 7 天内无法访问开发框,所以任何人都可以看到这种情况有什么问题吗?另外,谁能给我handler->errorInfo()如果连接没有打开会返回的错误信息?
【问题讨论】:
-
我建议告诉 PDO 在出错时抛出异常,而不是依赖
errorInfo。在连接选项中,使用array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION) -
@Chris,取决于。如果应用程序一般不使用异常,在 PDO 中启用它们弊大于利。