Странная проблема с несколькими соединениями mysql\_

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

Это моя ситуация:

* Я хочу использовать 2 или более соединения mysql.
* Я использую OOP

У меня есть класс под названием dbase, он имеет две функции:  `setConnection`  и  `getConnection`  и две переменные класса, называемые  `$ connection  и  $ dbaseName` .

In my main project file I include dbase and create two objects:  

* DBase
* maindbase

то я делаю:

```
$this->dbase->setConnection($server, $uname, $pword);
$this->maindbase->setConnection($server, $uname, $pword);

```

функция setConnection выглядит так:

```
function setConnection ($server, $serv_Username, $serv_Password) {
    $this->connection = mysql_connect($server, $serv_Username, $serv_Password, true);
   //echo $this->connection . "  
";
}

```

Я повторяю его, чтобы увидеть  `resourcenumber`  и добавил  **true**  в mysql\_connect (и я знаю, что он устарел с 5,5, я здесь не для этого).

Теперь, когда я понимаю ООП, переменные класса задаются для каждого объекта. Таким образом, соединение из dbase никогда не будет таким же, как  `maindbase`  (если, конечно, я не использую те же учетные данные, но даже тогда он создаст новую ссылку из-за включенной опции $ new_link). Оба они имеют разные идентификаторы ресурсов.

Моя проблема:

В классе dbase у меня также есть функция, которая выполняет такой запрос:

$connection = $this->getConnection();
$dbase_name = $this->getDbaseName();
mysql_select_db($dbase_name, $connection); 
$q = "SELECT * FROM {$table_name} WHERE {$column} LIKE '{$value}'";
$result = mysql_query($q);

Теперь, когда я использую его так, он будет ВСЕГДА использовать соединение FIRST $, которое было установлено в dbase класса, и не имеет значения, какой из этих объектов это: объект dbase или  `maindbase` .

Я получаю эту ошибку:

```
Table 'testdbase1.skye_domains' doesn't exist

```

объект dbase подключен к testdbase1

объект  `maindbase`  подключен к testdbase2

ошибка выше, которую я получаю при попытке выбрать результаты, используя объект  `maindbase` .

Когда я удаляю строку  `$ connection  из  mysql_select_db , она отлично работает, потому что она попытается открыть новое соединение, как если бы использовала mysql_connect.

Почему это? Это невозможно? Как объект object  maindbase  имеет то же $ соединение, что и объект dbase? Они находятся в NO WAY, подключенном к eachother ... Является ли [PHP](/tag5740) каким-то образом глобальной переменной mysql\_connect или буфером, о котором я не знаю?

Я хотел бы продолжать использовать  `connectionstrings` , поскольку это просто удобно и сейчас. Выход из строки $ connection кажется беспорядочным.

Есть ли у кого-нибудь какие-либо предложения, которые я могу попытаться снова сделать [PHP](/tag5740) (или мою голову)?

Try to put echo $this->connection EVERYWHERE you use it. Also, create an "id" member and fill it with a unique value upon constructing a dbase-object and echo it along the value of $this->connection. This way you can track where what happens to your connection.

And check if there's maybe some place outside of the class that assigns $foo->connection. If you're not using "private" on the members, you're bound to have such problems when you e.g. forget to remove a hack or an experiment from unrelated parts of your code.