2010-02-18 3 views
0

У меня есть открытое соединение SQL Server и нужно открыть и закрыть другое, сохранив при этом первое соединение. Я НЕ МОЖЕТ удерживать идентификатор ресурса для оригинала.Открыть новое соединение SQL Server в PHP

  1. Подключение (может или не может быть открыт)
  2. Открытое соединение B
  3. Выполните несколько запросов с помощью подключения B
  4. Закрыть соединение B
  5. Продолжить работа с соединением A
+0

Я думаю, что вы где-то пропускаете вопросительный знак. Кроме того, почему вы не можете хранить идентификатор ресурса? –

ответ

0

Если вы используете метод ниже, чтобы установить свои соединения, у вас может не быть соединения «A» и «B». Он также может предоставить вам возможность восстановить ранее открытое соединение «А», если вы используете аргумент «$ new_link».

ресурс mssql_connect ([строка $ имя_сервера [, строка $ имя пользователя [, строка $ пароль [, BOOL $ new_link]]]])

из php.net http://www.php.net/manual/en/function.mssql-connect.php

new_link
Если второй вызов выполняется в mssql_connect() с теми же аргументами, новая связь не будет установлена, но вместо этого будет возвращен идентификатор ссылки уже открывшейся ссылки. Этот параметр изменяет это поведение и заставляет mssql_connect() всегда открывать новую ссылку, даже если mssql_connect() был вызван ранее с теми же параметрами.

Так в основном, если вы создаете соединение A, а затем соединение В с new_link истинным затем использовать и закрыть соединение B, ваш следующий вызов mssql_connect с new_link, неверно будет возвращать соединение A.

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

Мне любопытно, почему вы не можете удержать A, а также почему вам нужно второе соединение.

+0

Я смотрел на это, проблема в том, что когда я закрываю «В», все соединение теряется даже при новой ссылке. Я не могу хранить идентификатор ресурса для «A», так как он плохо укоренился. – Davin

+0

Вы уверены, что 'B' действительно отличается от 'A'. Как я уже упоминал, если вы вызываете mssql_connect более одного раза, не устанавливая new_link в true, вы просто получаете ту же ссылку, поэтому в этом случае закрытие «B» закрывает «A». – avirtuos

Смежные вопросы