Проблема с подключением к базе данных класса PHP - PullRequest
1 голос
/ 26 сентября 2008

Для нового проекта, который я делаю в PHP, я создал класс SQLMethods для подключения к базе данных и выполнения запросов. Сегодня вечером я впервые провел тестирование (я написал это около недели назад и забыл об этом), и произошла непредвиденная ошибка: при вызове моей функции ExecuteQuery () она не использовала базу данных выбрано в конструкторе.

Конструктор:

    public function SQLMethods() {
        $SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword);

        if (!$SQLConnection) {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($SQLDB, $SQLConnection);
    }

Рассматриваемая функция:

    public function ExecuteQuery($Query) {
        mysql_query($Query, $SQLConnection) or die('Could not perform query: ' . mysql_error());
    }

Кто-нибудь видит проблему? Соединение закрывается после завершения конструктора?

Ответы [ 3 ]

7 голосов
/ 26 сентября 2008

вы должны объявить $ SQLConnection в вашем классе, и вы должны ссылаться на него как

 $this->SQLConnection

, а не просто $ SQLConnection.

2 голосов
/ 26 сентября 2008

$SQLConnection не существует в методе ExecuteQuery.

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

1 голос
/ 26 сентября 2008

Переменная $SQLConnection ExecuteQuery(), которую пытается использовать, создана в другой области видимости. (Функция SQLMethods).

Соединение закрывается, когда скрипт PHP выполнил свою работу или если вы закрыли его самостоятельно (если соединение выполнено в этом скрипте)

Вам следует пропустить переменную $SQLConnection в ExecuteQuery, как указано в документации php.net

Если идентификатор ссылки не указан, предполагается последняя ссылка, открытая mysql_connect().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...