Mysqli对象为空,没有连接错误


Mysqli object is empty, no connection error

我有一段非常简单的代码。

$mysqli = new mysqli($host, 'user', 'pass', $dbname);  
        if ($mysqli->connect_error) {
           //       ...
        }
 print_r($mysqli);
//  ...

共有2台服务器。一个使用PHP 5.3,另一个使用5.2.4第一台服务器工作正常,并打印有关连接的所有详细信息。

第二台服务器没有返回任何错误。所以看起来连接成功了。但是对象是空的(当存在时)

mysqli Object
(
)

问题出在哪里?

答案位于新的Mysqli对象为空

更多的测试表明,尽管对象看起来是空的,但属性并不是。并且可以直接访问。所以如果我做

print_r($mysqli->host_info);

我得到了预期的数据。而

print_r($mysqli)

显示为空。它看起来像是PHP 5.2.x中的一个错误正如我在问题中提到的,它在使用PHP 5.3 的服务器上正常工作

$mysqli = new mysqli($host, 'user', 'pass', $dbname);  
if (mysqli_connect_errno()) {
    throw new Exception(mysqli_connect_errno()." ".mysqli_connect_error());
}

适用于任何版本的