0

我在 global.php 文件中声明了以下函数:

function dbconnect(){
   $mysqli = new mysqli($dbserver,$dbuser,$dbpasswd,$dbdatabase);
   if ($mysqli->connect_error){
      echo ($mysqli->connect_error);
      return null;
   } else {
      return $mysqli;
   }
}

我已经 100% 确定 $dbdatabase 是一个有效的数据库。我调用该函数,我得到了一个有效的对象,没有错误;但是,当我尝试执行查询时,该对象报告未选择任何数据库。如果我删除代码并直接在我需要的地方执行它 - 没问题。我错过了什么吗?谢谢!

4

2 回答 2

1

$dbserver $dbuser $dbpasswd$dbdatabase未在函数范围内定义。

您应该将它们作为参数传递,例如:

function dbconnect($dbserver, $dbuser, $dbpasswd, $dbdatabase){

或者您可以使用糟糕的编码方法方式并通过这样做来全球化变量:

function dbconnect(){
    global $dbserver, $dbuser, $dbpasswd, $dbdatabase;

我建议使用第一种方法,或者只是在函数中定义变量。

于 2012-07-21T14:45:40.647 回答
0

实际上还有另一种方法。您只是不需要将它们全部设为全局。取而代之的是,您可以在本地制作它们。

喜欢...

函数 dbConnect(){

$server = "localhost";
$username = "root";
$password = "";
$dbname = "test";

 $con = new mysqli($server,$username,$password,$dbname);
 return $con ;

}

于 2016-03-18T18:31:00.140 回答