<?php
$mysqli=new mysqli('localhost','root','root1','mydb'); if ($mysqli->connect_error){
die("连接失败".$mysqli->connect_error);
}else{
echo "连接成功";
};
?>
上面代码,我故意把root写成root1,如果不改,页面显示连接成功,可是连接出错页面会显示如下
Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\Project1\f.php on line 2Warning: main() [function.main]: Couldn't fetch mysqli in C:\wamp\www\Project1\f.php on line 4
连接成功
为什么连接出错了,没有显示die里的 连接失败 信息?
如果连接失败,为什么还会显示else里的连接成功?
$mysqli=new mysqli('localhost','root','root1','mydb'); if ($mysqli->connect_error){
die("连接失败".$mysqli->connect_error);
}else{
echo "连接成功";
};
?>
上面代码,我故意把root写成root1,如果不改,页面显示连接成功,可是连接出错页面会显示如下
Warning: mysqli::mysqli() [mysqli.mysqli]: (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\Project1\f.php on line 2Warning: main() [function.main]: Couldn't fetch mysqli in C:\wamp\www\Project1\f.php on line 4
连接成功
为什么连接出错了,没有显示die里的 连接失败 信息?
如果连接失败,为什么还会显示else里的连接成功?
当连接失败后, $mysqli 就是无效的
if ($mysqli->connect_error)
就会因为 $mysqli 不是对象,而不能进入 true 分支于是只会执行 echo "连接成功";
范例
Example #1 $mysqli->connect_error example
面向对象风格
<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');// Works as of PHP 5.2.9 and 5.3.0.
if ($mysqli->connect_error) {
die('Connect Error: ' . $mysqli->connect_error);
}
?>
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}不知道你的手册怎么啦