Глюк mssql_connect в php
Вчера напоролся на одну достаточно неприятную “особенность” функции mssql_connect - если создавать два соединения к разным базам данных, то работать с ними одновременно не возможно - оба хандлера указывают на последнее соединение, первое оказывается недоступным. Тоесть, необязательный параметр во всех mssql_ функциях просто игнорируется.. Пока не разобрался с чем это связано, но больше всего похоже на баг в пхп расширении, хотя не исключаю проблем с FreeTDS, которая используется для работы с сервером баз данных(работаю под операционкой Linux CentOS).
Единственным пока выходом для меня оказалась последовательная работа с базами - соединились с одной, выполнили запрос, соединились со второй, тоже запрос, потом опять коннект к первой и так далее… Не сильно удобно, но зато вполне работоспособно ![]()
May 14th, 2007 at 2:43 pm
читать ман надо а потом людей пугать
Если второй вызов функции произошёл с теми же аргументами mysql_connect(), новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. Параметр client_flags должен быть комбинацией из следующих констант: MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE.
April 28th, 2008 at 4:50 am
у mssql_connect есть 4 аргумент $new_link.
если он true, то функция создает новое sql соединение даже когда уже создано
соединение к тому же серверу с теми юзером. иначе, по-умолчанию,
mssql_connect вернет ссылку на уже созданное соединение с сервером.
$sql1 = mssql_connect(’server’, ‘user’, ‘pass’);
$sql2 = mssql_connect(’server’, ‘user’, ‘pass’); // $sql2 = $sql1
$sql3 = mssql_connect(’server’, ‘user’, ‘pass’, true); //$sql3 - новое соединение к тому же серверу
May 15th, 2008 at 4:37 am
2 hb:
Спасибо большое за разьяснение, буду знать. Я действительно использовал подключения с одинаковыми параметрами.