我在任何地方都找不到这个问题的答案。也许它真的很简单
我的 mysql PDO 连接如下:
try{
$DBH = new PDO("mysql:host=$db_hostname;dbname=$db_database", $db_username, $db_password);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch (PDOException $e){
echo $e->getMessage();
exit;
}
我只想测试连接是否有效,即。密码、用户名、数据库名和主机名拼写是否正确。
try, throw 似乎发现了根本性错误,比如驱动程序拼写错误。如果密码错误,它不会抛出错误。
thanks
单击此问题即可在PDO 标签维基 https://stackoverflow.com/tags/pdo/info确切的方法是:
$dsn = "mysql:host=localhost;dbname=test;charset=utf8";
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn,'root','', $opt);
以及警告
不要使用 try..catch操作符只是为了处理错误消息。
未捕获的异常对于此目的来说已经非常出色,因为它将像其他 PHP 错误一样处理 PDO 错误 - 因此,您可以使用站点范围的设置来定义行为。
可以稍后添加自定义异常处理程序,但这不是必需的。特别是对于新用户,建议使用未处理的异常,因为它们信息丰富、有用且安全。
更多信息...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)