функции в require ("x.php") работают в некотором коде, но не могут быть вызваны в следующем? - PullRequest
0 голосов
/ 01 июля 2010

У меня есть этот код `

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

и он показывает настроенный. Почему я получаю: Доступ запрещен для пользователя 'ODBC' @ 'localhost' (с использованием пароля: НЕТ), затем ??

1 Ответ

4 голосов
/ 01 июля 2010

Вам не нужно подключаться к базе данных для каждого вызова, один $ conn = db_connect (); достаточно.

Можем ли мы взглянуть на функцию db_connect().

...