如何从PHP函数返回MYSQLi连接对象的实例?

如何从PHP函数返回MYSQLi连接对象的实例?,php,mysql,mysqli,Php,Mysql,Mysqli,使用从以下PHP函数(PHP版本5.3.10、MYSQL版本5.5.24)返回的MYSQLi连接对象时出现问题: 函数的调用方式如下: $mycon=connectDB(); 使用此方法创建的连接对象实例与不使用函数直接创建的实例不同: $mycon=new mysqli("host","user","password","database"); LOCALHOST via TCP/IP 产量 echo $mycon->host_info; 在第一种情况下(带有函数),是: 在后一

使用从以下PHP函数(PHP版本5.3.10、MYSQL版本5.5.24)返回的MYSQLi连接对象时出现问题:

函数的调用方式如下:

$mycon=connectDB();
使用此方法创建的连接对象实例与不使用函数直接创建的实例不同:

$mycon=new mysqli("host","user","password","database");
LOCALHOST via TCP/IP
产量

echo $mycon->host_info;
在第一种情况下(带有函数),是:

在后一种情况下(无功能):


这种建立连接的方法有什么问题吗?

我发现了错误。该连接实际上是通过变量建立的:

$con=new mysqli($host,$user,$password,$database);

我忽略了问题中的变量,认为它们是不必要的细节。事实证明,变量是在函数范围之外定义的。连接是用未定义的参数创建的,我猜是用默认设置创建的。需要注意的是,没有警告。

对我来说,两者都是相同的,即通过UNIX套接字执行的
Localhost
Nehal,使用函数返回的连接执行的查询失败,而直接创建的连接一切正常。“host”值是多少?是本地数据库还是远程数据库?如果远程,您是否有具有相同用户和数据库的本地数据库?主机值为“localhost”。这是一个本地数据库。您的脚本是过程性的,并且使用oop接口。我不确定,但我认为
connectDB()
并没有返回对对象的引用,而是返回其副本。然后你会有第二次连接。请尝试更改
connectDB()
并使用过程接口
$con=mysqli_connect(“主机”、“用户”、“密码”、“数据库”)并张贴差异。您可以在中找到更多信息
LOCALHOST via TCP/IP
$con=new mysqli($host,$user,$password,$database);