我正在尝试捕获数据库连接上的错误,但是当我输入错误的主机名时出现错误,这是我的代码:
try
{
$mysqlconnection = new PDO('mysql:host=localshost;dbname=test', 'root', '');
}
catch (Exception $ex)
{
die('Erreur : ' . $ex->getMessage());
}
这是我得到的错误:
如果我设置了错误的主机名,为什么我才会收到此错误?
答案 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,或者未知