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

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

Теперь мне пришлось открыть соединение с другой базой данных; это работает нормально, однако теперь все вызовы функций базы данных, похоже, используют второе открытое мной соединение (они используют разные аргументы).

Есть ли способ избежать этого и заставить запросы вернуться к использованию первого открытого соединения, или мне придется добавить link identifier на все остальные звонки?

Могу ли я просто закрыть второе соединение, и тогда оно вернется к использованию или нет?

Я знаю, что могу избежать открытия второго соединения, используя список db в запросе, но я не хочу, чтобы обе базы данных использовали одинаковые учетные данные.

1 ответ

Нашел этот кусок из php документации.

Обратите внимание, что руководство немного вводит в заблуждение:

"Устанавливает текущую активную базу данных на сервере, который связан с указанным идентификатором ссылки. Каждый последующий вызов mysql_query() будет выполняться в активной базе данных".

2-е утверждение не верно или в лучшем случае неясно.

Введенная вручную запись mysql_query() фактически утверждает, что она будет использовать последнюю ссылку, открытую mysql_connect() по умолчанию.

Таким образом, если у вас есть 2 соединения, вам нужно будет указать соединение при вызове mysql_query или повторно выполнить соединение, чтобы убедиться, что 1-я база данных станет стандартной, просто использование mysql_select_db не сделает 1-ю базу данных по умолчанию для последующих вызовов mysql_query.

Вероятно, это очевидно только тогда, когда две базы данных находятся на разных серверах.

http://www.php.net/manual/en/function.mysql-select-db.php

Похоже, мне придется запустить другое соединение с первой базой данных, когда я закончу со второй.

Другие вопросы по тегам