【发布时间】:2018-03-03 23:32:41
【问题描述】:
我需要一些关于 PDO 错误处理的指导。
我得到了这个代码:
<?php
$config = include('config.php');
try{
$handler = new PDO('mysql:host-127.0.0.1;dbname=not_a_valid_dbname', $config->username, $config->password);
$handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 'Yup!';
}catch(PDOException $e){
echo 'Caught! '.$e->getMessage();
}
如您所见,我提供了一个无效的数据库名称。此页面输出“是的!”而不是让我知道没有这样的数据库。更改 'mysql:not_valid_host' 时也是如此。只有当我更改驱动程序名称时,它才会引发错误,让我知道没有该名称的驱动程序。
我试过了:
检查 php.ini 中的设置(我很难解决这个问题)
添加
error_reporting(E_ALL);
ini_set("display_errors", 1);
ini_set("display_startup_errors", 1);
添加
ini_set('display_errors',true);
还尝试在 catch 参数中添加反斜杠:
catch(\PDOException $e)
还是一样的结果。帮我破解我的代码:D
【问题讨论】:
标签: php pdo error-handling