Странная проблема с несколькими соединениями 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.