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

Я пытаюсь подключиться к 2 базам данных. Одним из них является удаленная база данных. Когда я подключился к удаленной базе данных, у меня возникли проблемы с той, которая существовала, он дал мне «предоставленный аргумент неверен» на mysql_fetch_array(). Поэтому я немного изменил свой класс базы данных и попытался заставить его работать. Но я все еще получаю ошибки :(. Это не захватывает переменную $connection. я получаю "неопределенную переменную связь". это мой класс связи. Пожалуйста, помогите мне. Ценю вашу помощь.

global $connection;

class Database{

function __construct()
{
    $this->open_connection();
}

public function open_connection()
{

    $connection = $this->connection= mysql_connect(SERVER,UNAME,PASSWORD);

    if(!$this->connection)
    {
        return false;
    }

    if(!mysql_select_db(DB_NAME,$this->connection))
    {
        return false;
    }
    return true;
}

public function close_connection()
{
    mysql_close($this->connection);
}
 //open_connection();
 }

$database = new Database();

и на другой странице:

$result=mysql_query($query,$connection);        

while ($rec = mysql_fetch_array($result)) ... etc

p.s все константы и другие переменные верны.

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Использование глобальной переменной в классе похоже на смерть.Вы можете предоставить поле класса для ссылки подключения

$this->connection = mysql_connect(...);

И за пределами вашего класса

$result = mysql_query($sql, $object->connection);

Я бы также предложил вам использовать существующий класс mysqli.

0 голосов
/ 28 марта 2012

«глобальное $ соединение»; ДОЛЖЕН быть внутри метода "open_connection" или использовать метод @ peipst9lker

0 голосов
/ 28 марта 2012

Хмм ... Ну, похоже, вы получили неопределенную ошибку, потому что вы вызываете глобальное соединение $ в верхней части файла класса, и ему не присвоено значение.

Похоже, вы устанавливаете $ connection внутри метода open_connection () ... Вы устанавливаете $ connection в каком-то включенном файле, который вы не упомянули?

Возможно, удалите первую строку кода?

...