错误的主机名时出现PDO错误

时间:2013-01-20 04:11:00

标签: php

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

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

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

}

这是我得到的错误:

enter image description here

如果我设置了错误的主机名,为什么我才会收到此错误?

1 个答案:

答案 0 :(得分: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());
}

对我而言,它输出

  

Erreur:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:提供了nodename或servname,或者未知