为什么real_connect会返回null?

时间:2011-09-26 08:10:10

标签: php mysqli

由于一些奇怪的原因,下面的代码返回null,而手册声明它应该返回true或false。 mysqli对象中也没有信息。

代码

// Initialize MySQLi

$this->mysqli = new mysqli();

// Connect to the server

var_dump($this->mysqli);
var_dump($this->mysqli->real_connect($host, $username, $password, $database));
var_dump($this->mysqli);

输出

object(mysqli)#2 (17) { ["affected_rows"]=> NULL ["client_info"]=> NULL ["client_version"]=> int(50141) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> NULL ["error"]=> NULL ["field_count"]=> NULL ["host_info"]=> NULL ["info"]=> NULL ["insert_id"]=> NULL ["server_info"]=> NULL ["server_version"]=> NULL ["sqlstate"]=> NULL ["protocol_version"]=> NULL ["thread_id"]=> NULL ["warning_count"]=> NULL }
NULL
object(mysqli)#2 (17) { ["affected_rows"]=> NULL ["client_info"]=> NULL ["client_version"]=> int(50141) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> NULL ["error"]=> NULL ["field_count"]=> NULL ["host_info"]=> NULL ["info"]=> NULL ["insert_id"]=> NULL ["server_info"]=> NULL ["server_version"]=> NULL ["sqlstate"]=> NULL ["protocol_version"]=> NULL ["thread_id"]=> NULL ["warning_count"]=> NULL } 

2 个答案:

答案 0 :(得分:1)

您没有正确使用它。

您需要使用mysqli_init()创建对象。

或者您将连接信息放在构造函数中,而不是调用real_connect

答案 1 :(得分:0)

我想知道你的代码的上下文是什么? 我只是在一个项目中工作,我在config.php文件中设置它..

<?php
$h='localhost';$u='username';$pw='PW';$db='test';
$sqli = new mysqli($h,$u,$pw,$db); ?>

然后在函数文件中......

<?php
include_once 'include/config.php';
class User {
public function __construct($sqli) {
        $this->sqli=$sqli;
} //etc.
} ?>

连接效果很好,您可以在其中调用连接 使用$ this-&gt; sqli的类用户功能 - &gt;查询(“SELECT ...例如。 创建用户时传递连接... $ user = new User($ sqli);