所以这是我的代码:
class database{
public function __construct($host, $username, $password, $db_name){
$db = new PDO("mysql:host=".$host.";dbname=".$db_name,$username,$password);
}
}
try{
$db = new database('localhot','root','','first_database');
}catch(Exception $e){
echo $e -> getmessage();
}
这在连接时有效。但是当出现错误时,就像localhost拼写错误一样,我收到两条错误消息,例如: 我真的不明白为什么会这样?我之前与mysqli_connect的联系非常有效。试图掌握OO和PDO。
有什么建议吗?感谢信。
注意:请以最简单的方式表示:)
答案 0 :(得分:0)
你应该使用(PDOException)
try{
$db = new database('localhot','root','','first_database');
}catch(PDOException $e){
echo $e->getmessage();
}
这个关于PDOException的php手册:Here
答案 1 :(得分:-1)
PHP错误和警告在try catch块中无法捕获。只有代码中明确抛出的异常才是。
如果要捕获PHP生成的错误和警告,则必须使用set_error_handler注册错误处理程序