2

我正在尝试捕获数据库连接上的错误,但是当我仅输入错误的主机名时出现错误,这是我的代码:

try
{
    $mysqlconnection = new PDO('mysql:host=localshost;dbname=test', 'root', '');
}
catch (Exception $ex)
{

die('Erreur : ' . $ex->getMessage());

}

这是我得到的错误:

在此处输入图像描述

为什么只有在我设置了错误的主机名时才会出现此错误?

4

1 回答 1

1

您可能希望打开异常并PDOException用于捕获的异常。

try {
    $mysqlconnection = new PDO(
        'mysql:host=localshost;dbname=test',
        'root', 'yourPasswordHere'
    );
    $mysqlconnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $ex) {
    die('Erreur : ' . $ex->getMessage());
    // or 
    // die('Erreur:' . PHP_EOL . $ex->getTraceAsString());
}

对我来说它输出

错误:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo 失败:提供节点名或服务名,或未知

于 2013-01-20T04:45:05.380 回答