为什么mysqli_connect()返回true,即使我传递错误的用户名?

Sir*_*lam 1 php mysql sql apache phpmyadmin

这是我的代码.

<?php
    $server = "localhost";
    $uname = "replace it with anything";
    $pswd = "";

    $conn = mysqli_connect($server, $uname, $pswd);

    if(!$conn){
        die('Caught');
    }
    else{
        die('Connected');
    }   
?>
Run Code Online (Sandbox Code Playgroud)

无论我在通过mysqli_connect()作为用户名.它总是回归true.在密码错误的情况下,它显示访问被拒绝的错误,但我不知道为什么,无论我输入用户名,它总是返回true.

wat*_*att 7

它不返回布尔值,而是返回表示连接的对象.然后,您可以检查对象的连接性.从手册:

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * This is the "official" OO way to do it,
 * BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}
Run Code Online (Sandbox Code Playgroud)