Не удается подключиться к базе данных внутри функции php - PullRequest
1 голос
/ 28 октября 2011

У меня есть php-файл, в котором я подключаюсь к своей базе данных и извлекаю свои значения,

<?
  $dbconn = mysqli_connect(..,..,..);
  $query = ...
  $result = ...
  ...
?>

все прекрасно с этим кодом, но когда я помещаю блок в функцию php, я не могу получить свойзначения (вызов процедуры не может быть выполнен), я пытаюсь это:

<?
     $dbconn = mysqli_connect(...,...,...);
     function drawTable()
    {
       $query = ...
       $result = ...
       ....
    }
   drawTable();


?>

Ответы [ 3 ]

3 голосов
/ 28 октября 2011

Это потому, что в области действия функции внешние переменные не видны.

Вы можете получить доступ к переменной $ dbconn, сделав ее глобальной или передав ее в качестве аргумента.

или

 $dbconn = mysqli_connect(...,...,...);
 function drawTable($dbconn)
{
   $query = ...
   $result = ...
   ....
}
drawTable($dbconn);
0 голосов
/ 28 октября 2011

Способ 1: доступ к глобальному $dbconn.

$dbconn = mysqli_connect(...,...,...);
function drawTable()
{
    global $dbconn;
    $query = ...
    $result = ...
    ....
}
drawTable();

Способ 2: передача $dbconn в качестве параметра.

$dbconn = mysqli_connect(...,...,...);
function drawTable($dbconn)
{
    $query = ...
    $result = ...
    ....
}
drawTable($dbconn);
0 голосов
/ 28 октября 2011

Если вы используете переменную $dbconn внутри функции, то произойдет сбой, поскольку она находится в неправильной области видимости. Передайте переменную $dbconn функции, чтобы она могла ее использовать.

...