警告php\u网络\u getaddress
这是我的代码:警告php\u网络\u getaddress,php,mysql,pdo,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','r
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的连接工作得非常好。试图控制OON PDO
有什么建议吗?多谢各位
注意:请尽可能简单地说:)在try-catch块中无法捕获PHP错误和警告。只有在代码中显式抛出的异常是 如果您想捕获PHP生成的错误和警告,您必须使用您应该使用的(PDOException)注册错误处理程序
是为PDOException类提供的链接。请附上有问题的图像。您看到的不是错误。这是一个警告。您根本不需要处理错误,否则您可能会对错误做出反应。例如,在实现try-catch构造的调用作用域中引发一个异常。AFAIK PDO构造函数甚至不应该引发警告,但确实应该引发一个异常。第五行是什么?看起来是您的数据库发出了警告,而不是pdo构造函数。这真的是你的代码吗?nvm我只是重读了你的警告信息..我从回复中得到了这样的印象,PDO不是解决问题的方法?或者我做错了。
try{
$db = new database('localhost','root','','first_database');
}catch(PDOException $e){
echo $e->getMessage();
}