Могу ли я вызвать DB: подключиться, не влияя на текущую активную БД? - PullRequest
0 голосов
/ 10 октября 2010

Я пытаюсь объединить базы php-кода, каждая из которых использует разные БД. Могу ли я вызвать DB :: connect, при изменении которого БД считается активной? Или я могу сохранить активную БД и восстановить ее после вызова connect?

Edit: проблема в том, что одна база кода использует mysql_query () без предоставления $ link_identifier, и я не хочу изменять все вызовы, но я все еще хочу иметь возможность открыть второе соединение с БД. Прямо сейчас это работает в зависимости от порядка, в котором я подключаюсь к БД, что является болью.

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Когда вы создаете новое соединение с БД, ссылка на ресурс обычно возвращается или сохраняется как член класса-обертки БД или как-то еще.Вы ДОЛЖНЫ использовать эту ссылку (например, сохраненную в переменной) каждый раз, когда вызываете функции запроса и т. Д. Если вы не укажете ссылку, будет использоваться последняя открытая ссылка, что может иметь катастрофические последствия.Однако если вы усердно используете правильную созданную ссылку, проблем не будет вовсе.

1 голос
/ 10 октября 2010

DB :: connect создает ресурс соединения.Вы можете подключиться ко многим различным базам данных / серверам одновременно.Ресурс соединения содержит используемую базу данных.Просто сохраните возвращенную ссылку на соединение в разных переменных, и все будет в порядке.

Подключение к нескольким базам данных одновременно является очень распространенным явлением.Например, подключение к подчиненной БД для SELECT и главной БД для INSERT, UPDATE и DELETE.

...