функции mysql в функциях PHP - PullRequest
       4

функции mysql в функциях PHP

0 голосов
/ 05 августа 2010

Например:

<? 
function getTitle(){
    $query="SELECT title FROM news WHERE author = 'admin' LIMIT 5";
    $result = mysql_query($query, $mysql_connection);
    $data = mysql_fetch_array($result,MYSQL_ASSOC);
    return $data['title'];
}
?>

И каждый раз, когда я хочу отправить запрос MySql, я всегда должен включать config.php внутри функции, иначе он не работает.Я попытался включить в начале файла, но по-прежнему безрезультатно.

Файл Config.php состоит из подключения к базе данных и выбора базы данных.Там нет ошибок.

В чем проблема?

Ответы [ 4 ]

4 голосов
/ 05 августа 2010

$mysql_connection неизвестно внутри области действия функции.

Если в вашем скрипте используется только одно соединение, вы могли бы теоретически также опустить спецификатор соединения:

$result = mysql_query($query);

Таким образом, ваши вызовы mySQL будут работать без каких-либо дополнительных шагов.

Если вы хотите сохранить идентификатор (если у вас открыто несколько соединений), в качестве быстрого решения вы можете использовать

function getTitle() 
 {
   global $mysql_connection;
   .....

 }

для импорта соединения в область действия функции.

Усовершенствованный (и несколько более чистый) способ заключается в создании одноэлементного или статического объекта, содержащего подключение к базе данных. Смотрите этот вопрос для хороших примеров:

2 голосов
/ 05 августа 2010

Это может быть потому, что вы ссылаетесь на $mysql_connection, который объявлен в вашем config.php и теперь находится вне области видимости. Вы можете полностью пропустить этот параметр, если используете только одно соединение. Просто позвоните mysql_query($query);

1 голос
/ 05 августа 2010

Это потому, что переменная $ mysql_connection не видна в теле функции. Используйте

global $ mysql_connection

в начале функции

1 голос
/ 05 августа 2010

Поместите в вашу функцию следующее:

global $mysql_connection;

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

Я сталкивался с таким жевыпускать также.

...