PDO 连接超时:详细解决方案
简介:
连接到数据库有时可能需要由于网络问题或服务器可用性等各种因素,导致时间过长。在使用生产系统时,这可能会特别令人沮丧。
PDO 属性设置:
OP 尝试使用带有 PDO::ATTR_TIMEOUT 属性的 PDO::setAttribute() 设置超时,但并没有解决问题。这是因为超时设置适用于 PDO 语句执行,而不适用于连接建立。
最佳解决方案:
设置连接超时的推荐解决方案是提供超时值作为 PDO 对象初始化期间的配置参数。这可以通过在构造函数选项数组中指定 PDO::ATTR_TIMEOUT 来实现。
示例代码:
以下代码演示了如何为 MySQL 设置 5 秒的连接超时数据库连接:
<code class="php">$DBH = new PDO( "mysql:host=$host;dbname=$dbname", $username, $password, array( PDO::ATTR_TIMEOUT => 5, // in seconds PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ) );</code>
通过将 PDO::ATTR_ERRMODE 设置为 PDO::ERRMODE_EXCEPTION,任何数据库错误或超时都会触发 PDOException,可以捕获并进行相应处理。
以上是如何在 PHP 中设置 PDO 连接超时?的详细内容。更多信息请关注PHP中文网其他相关文章!