MySQL mysql_select_db, Использование двух баз одновременно

PAG

Новичок
MySQL mysql_select_db, Использование двух баз одновременно

У меня такой вопрос: можно ли одновременно использовать две и более баз?
Я попробовал, ничего не получилось.
У меня специальный класс осуществляет все операции с БД. В нем же хранится id соединения. При соединении выбирается база данных, с которой будет идти работа.
Но после выполнения второго подключения устанавливается текущая база данных не только для него, но и для первого.
В документации написано, что
Каждый последующий вызов mysql_query() будет делаться на активной БД
Как же быть, ведь и в mysql_query, и в mysql_select_db я указываю конкретный id, но это не помогает.
Вообще такое можно сделать?
 

PAG

Новичок
Этот вариант понятен, но не очень подходит.
У меня два разных модуля, работающих с разными базами, но в некоторых местах их использование нужно объеденить.
Даже не требуется выполнять одним запросом выборку из двух баз, главное, чтобы сами запросы, перемешанные между собой обращались к нужной базе.
 

Кром

Новичок
Создай два разных объекта и используй их для работы с разными базами:
$obj->Query();
$obj2->Query();

>Но после выполнения второго подключения устанавливается текущая база данных не только для него, но и для первого.

В mysql_query передавай resourceID для необходимого соединения. Хранить resourceID нужно отдельно друг от друга, в разных объектах, а у тебя они, видимо, затирают друг друга.
 

mani13

Новичок
[telepat mode]
Если второй вызов функции произошёл с теми же аргументами mysql_connect(), новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. Параметр client_flags должен быть комбинацией из следующих констант: MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE.
[/telepat mode]
 

PAG

Новичок
Автор оригинала: Кром
Создай два разных объекта и используй их для работы с разными базами:
$obj->Query();
$obj2->Query();

>Но после выполнения второго подключения устанавливается текущая база данных не только для него, но и для первого.

В mysql_query передавай resourceID для необходимого соединения. Хранить resourceID нужно отдельно друг от друга, в разных объектах, а у тебя они, видимо, затирают друг друга.
Я именно так и делаю, причем resourceID хранится в объекте, а экземпляры объекта разные, но это не помогает.

Автор оригинала: mani13
[telepat mode]
Если второй вызов функции произошёл с теми же аргументами mysql_connect(), новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. Параметр client_flags должен быть комбинацией из следующих констант: MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE.
[/telepat mode]
Вот это интересное замечание, надо попробовать. Спасибо за совет.
 
Сверху