如何从PHP函数返回MYSQLi连接对象的实例?
使用从以下PHP函数(PHP版本5.3.10、MYSQL版本5.5.24)返回的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; 在第一种情况下(带有函数),是: 在后一
$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);