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; 
  }
}

Ok。db_connect の前にこのコードを試しました:

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

そしてそれはセットで表示されます。なぜ私は得るのですか?

4

1 に答える 1

4

$conn = db_connect(); を呼び出すたびにデータベースに接続する必要はありません。で十分です。

db_connect()関数を見てみましょう。

于 2010-07-01T14:57:01.203 に答える