PDO不显示错误主机警报

时间:2019-01-05 10:46:45

标签: php pdo

我最近错过了PDO语法,花了几个小时才弄清错误是什么。页面上未报告任何错误。这不是为了赶时髦。

在这些情况下如何显示错误?

我用过

new PDO ("mysql:localhost; dbname=crud", "root", "");

正确的时间是

new PDO ("mysql:host=localhost; dbname=crud", "root", "");

是的

ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', 1);

已激活且条件

try {} catch (PDOException $ e) {}

即使这样也不会显示错误。

1 个答案:

答案 0 :(得分:2)

PDO具有默认模式无提示(PDO::ERRMODE_SILENT)。这意味着它不会在连接不良时引发异常。 因此,您需要设置其属性模式以引发异常:

try {

    $dbh = new PDO ("mysql:localhost; dbname=crud", "root", "");
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

    echo 'Bad Connection. Error: ' . $e->getMessage();

}

此处有更多详细信息:http://php.net/manual/en/pdo.error-handling.php