gpt4 book ai didi

PHP PDO 连接失败抛出警告和脚本执行超时

转载 作者:可可西里 更新时间:2023-11-01 13:25:03 30 4
gpt4 key购买 nike

我正在尝试像这样实例化一个 PDO 对象:

$this->pdo['pdo'] = new PDO('mysql:host=127.0.0.1;dbname=mydb;charset=UTF-8',
'myuser', 'my pass');

我想捕获我认为在 MySQL 服务器未运行时会抛出的异常。

PHP.net 说“如果尝试连接到请求的数据库失败,PDO::__construct() 将抛出 PDOException。”

但是如果我关闭数据库服务器并运行脚本,我得到的只是一个警告:

Warning: PDO::__construct() [pdo.--construct]: [2002] 'A connection attempt failed 
because the connected party did not properly respond after a period of time, or
established connection failed because connected host has failed to respond.' in
C:\test\test.php on line 5

Fatal error: Maximum execution time of 60 seconds exceeded in C:\test\test.php
on line 0

没有抛出异常。

是否有直接捕获错误的方法(无需临时设置自定义错误管理器函数的麻烦?)

谢谢!

最佳答案

将数组配置作为 PDO() 的第 4 个参数传递:

PDO::setAttribute ( PDO::ATTR_TIMEOUT , '5' );  //> Secs

降低连接超时

PDO::setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

总是抛出异常。

用法:

new PDO(,array(

PDO::ATTR_TIMEOUT => "10",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION

));

关于PHP PDO 连接失败抛出警告和脚本执行超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6524829/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com