Подтвердить что ты не робот

Как заставить mssql работать с PHP 5.3?

Я обновился до PHP 5.3 и заметил, что php_mssql.dll отсутствует. После того, как вы немного поработали, похоже, что 5.3 отказался от поддержки mssql. Поэтому я загрузил драйверы из microsoft, но я не могу заставить его работать.

Я на окнах. Что мне нужно сделать, после того, как я разархивирую файлы в каталоге ext моего PHP 5.3?

4b9b3361

Ответ 1

Цитата http://php.net/manual/en/intro.mssql.php:

Расширение MSSQL больше не доступно в Windows с PHP 5.3 или новее. SQLSRV, альтернативный драйвер для MS SQL доступен в Microsoft: "http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.

После его загрузки следуйте инструкциям на этой странице:

В двух словах:

Поместите файл драйвера в каталог расширения PHP.
Измените файл php.ini, чтобы включить драйвер. Например:

extension=php_sqlsrv_53_nts_vc9.dll  

Перезапустите веб-сервер.

См. также (скопировано с этой страницы)

Руководство по PHP для расширения SQLSRV находится в http://php.net/manual/en/sqlsrv.installation.php и предлагает следующее для установки:

Расширение SQLSRV включено путем добавления соответствующего DLL файла в ваш каталог расширения PHP и соответствующую запись в файл php.ini. Загрузка SQLSRV поставляется с несколькими файлами драйверов. Какой файл драйвера вы будете использовать, будет зависеть от трех факторов: используемой вами версии PHP, независимо от того, используете ли вы поточный или ненаправленный поточный PHP, и была ли ваша установка PHP скомпилирована с помощью компилятора VC6 или VC9. Например, если вы используете PHP 5.3, вы используете не-потокобезопасный PHP, и ваша установка PHP была скомпилирована с помощью компилятора VC9, вы должны использовать файл php_sqlsrv_53_nts_vc9.dll. (Вы должны использовать версию, отличную от потоковой, скомпилированную с компилятором VC9, если вы используете IIS в качестве своего веб-сервера). Если вы используете PHP 5.2, вы используете поточно-безопасный PHP, и ваша установка PHP была скомпилирована с помощью компилятора VC6, вы должны использовать файл php_sqlsrv_52_ts_vc6.dll.

Драйверы также могут использоваться с PDO.

Ответ 2

Загрузите Драйверы Microsoft для PHP для SQL Server. Извлеките файлы и используйте один из них:

File                             Thread Safe         VC Bulid
php_sqlsrv_53_nts_vc6.dll           No                  VC6
php_sqlsrv_53_nts_vc9.dll           No                  VC9
php_sqlsrv_53_ts_vc6.dll            Yes                 VC6
php_sqlsrv_53_ts_vc9.dll            Yes                 VC9

Вы можете увидеть статус безопасности потока в phpinfo().

Добавьте правильный файл в каталог ext и следующую строку на ваш php.ini:

extension=php_sqlsrv_53_*_vc*.dll

Используйте имя файла, который вы использовали.

Как уже сообщал Гордон, это новое расширение от Microsoft и использует sqlsrv_ * API вместо mssql _ *

Update:
В Linux у вас нет необходимых драйверов и ни расширения SQLSERV.
Посмотрите Подключиться к MS SQL Server с PHP на Linux? для обсуждения этого вопроса.

Короче вам нужно установить FreeTDS и YES, вам нужно использовать функции mssql_ * в linux. см. обновление 2

Чтобы упростить работу в конечном итоге, я бы рекомендовал создать класс-оболочку с необходимыми функциями, которые используют соответствующий API (sqlsrv_ * или mssql_ *) на основе того, какое расширение загружено.

Обновление 2: Вам не нужно использовать функции mssql_ * в linux. Вы можете подключиться к серверу ms sql, используя PDO + ODBC + FreeTDS. В Windows лучший способ подключения - через собственный клиент PDO + ODBC + SQL, поскольку драйвер PDO + SQLSRV может быть невероятно медленным.