当前位置:  开发笔记 > 编程语言 > 正文

PHP PDO异常+ MySQL警告已消失?

如何解决《PHPPDO异常+MySQL警告已消失?》经验,为你挑选了0个好方法。

我们同时收到PDOException和警告。这些警告使我们发疯。

警告:PDOStatement :: execute():MySQL服务器已在第120行的/home/Database.php中消失了

警告:PDOStatement :: execute():在第120行的/home/Database.php中读取结果集的标头时出错

这是执行此操作的代码- 这只是为了模拟断开连接

$db = new PDO('mysql:dbname=' . $name . ';host=' . $host, $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

$statement = $db->prepare('SET SESSION wait_timeout = 1');
$statement->execute();

sleep(3);

try {
    $statement = $db->prepare('SELECT 1');
    $statement->execute();
} catch (PDOException $e) {
    echo 'Exception! Err #:' . $e->errorInfo[1] . PHP_EOL;
}

编辑:问题是为什么这会生成警告和异常。即使我们专门告诉PDO抛出异常,上面的代码也只会生成这两者。
上面的代码使它的发生比等待服务器默认的wait_timeout更快。

编辑2:我不确定为什么关闭它。问题是,为什么无论PDO错误级别如何,PHP都生成警告和异常?

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有