PDO连接尝试&抓住

时间:2015-03-18 07:56:16

标签: php mysql pdo

所以这是我的代码:

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拼写错误一样,我收到两条错误消息,例如: enter image description here 我真的不明白为什么会这样?我之前与mysqli_connect的联系非常有效。试图掌握OO和PDO。

有什么建议吗?感谢信。

注意:请以最简单的方式表示:)

2 个答案:

答案 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注册错误处理程序