0

我有这个代码`

        require("db_connect.php");

        function xx()
        {

        $conn = db_connect(); //here it works
        (...)

        date_default_timezone_set('Europe/Paris');      
        if(time() <= $x[0]){
            (...)
            }else
        {

            (...)                   
            for ($x = 0; $x < count($GLOBALS['car_park']); $x++)
            {

            $conn = db_connect(); //here i get :Access denied for user 'ODBC'@'localhost' (using password: NO)
            $res = $conn->query("SELECT * FROM x WHERE owner='x' AND x='0' ORDER BY id DESC ");
            if (!$res) {
                //die(msg(0,"Could not execute query"));
            }   

            }

        }


}

`

我已经删除了所有回声和其他一些循环等,但除此之外我认为代码是相同的。我似乎一直用全局变量范围来解决这个问题。我认为变量是全局的并且总是设置的,代码停止工作,经过很多麻烦后我发现我认为是全局的变量突然消失了..非常烦人..

db_connect 函数:

function db_connect() {
   $result = new mysqli('localhost', 'user', 'pass', 'db');
     if (!$result) {
       die(msg(0,"Could not connect to database server"));
   } else { 
     return $result; 
  }
}

好的。我在 db_connect 之前尝试了这段代码:

if (isset ($conn)){
                echo "set"; 
                }
            else {
                echo "unset"; 
                }

它显示出来了。为什么我会得到:用户 'ODBC'@'localhost' 的访问被拒绝(使用密码:否)然后?

4

1 回答 1

4

您不需要每次调用都连接到数据库,一个 $conn = db_connect(); 足够的。

我们可以看看db_connect()功能。

于 2010-07-01T14:57:01.203 回答