Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysqli对象为空,没有连接错误_Php_Mysqli - Fatal编程技术网

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

Php Mysqli对象为空,没有连接错误,php,mysqli,Php,Mysqli,我有一段非常简单的代码 $mysqli = new mysqli($host, 'user', 'pass', $dbname); if ($mysqli->connect_error) { // ... } print_r($mysqli); // ... 有2台服务器。一个是PHP5.3,另一个是PHP5.2.4 第一台服务器工作正常,并打印有关连接的所有详细信息 第二台服务器不返回任何错误。看来连接成功了。

我有一段非常简单的代码

$mysqli = new mysqli($host, 'user', 'pass', $dbname);  
        if ($mysqli->connect_error) {
           //       ...
        }
 print_r($mysqli);
//  ...
有2台服务器。一个是PHP5.3,另一个是PHP5.2.4 第一台服务器工作正常,并打印有关连接的所有详细信息

第二台服务器不返回任何错误。看来连接成功了。 但对象为空(存在时)

有什么问题吗

$mysqli = new mysqli($host, 'user', 'pass', $dbname);  
if (mysqli_connect_errno()) {
    throw new Exception(mysqli_connect_errno()." ".mysqli_connect_error());
}
适用于任何版本

答案在

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

print_r($mysqli->host_info);
我得到了预期的数据。当

print_r($mysqli)
显示为空。 它看起来像PHP5.2.x中的一个bug
正如我在问题中提到的,它在使用PHP5.3的服务器上正常工作,我一直看到这种类型的问题,您应该阅读。谢谢您的建议。正如我所提到的,完全相同的脚本使用相同的数据库。所以你所有的基本清单都是确定的,不要把OO和程序混为一谈。或者,您是在建议,在PHP5.2中,我们必须为这个属性指定一个参数?我看不到任何证据。请清楚地解释你的答案。这也不是。if(mysqli_connect_errno()){抛出新异常(mysqli_connect_errno()。“”.mysqli_connect_error());echo'error';}else{echo'No error';}print_r($mysqli);没有返回错误mysqli Object()@AlexanderPresman ok,我假设
$mysqli=mysqli_init()是否也返回空对象?你确定你能看到所有的PHP错误吗?我想这个答案是在你知道你可以强制警告进入异常之前发布的吧我正在试图找到我的问题的答案,
mysqli\u connect\u error
什么时候有用,我找到了这个答案。@Dharman我不会这样称呼它。事后看来,现在这是毫无意义的。但向后兼容性很重要。此函数是在没有人想到使用异常但每个人都手动检查函数结果时添加的。
print_r($mysqli)