Как заставить расширение SQLSRV работать с PHP, поскольку MSSQL устарел? - PullRequest
23 голосов
/ 13 сентября 2011

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

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

Ответы [ 2 ]

37 голосов
/ 13 сентября 2011

Цитирование 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 поставляется с несколькими файлами драйверов.Какой файл драйвера вы будете использовать, будет зависеть от 3-х факторов: используемой вами версии PHP, независимо от того, используете ли вы потокобезопасный или не поточно-безопасный PHP, и была ли ваша PHP-компиляция скомпилирована компилятором VC6 или VC9.Например, если вы используете PHP 5.3, вы используете не поточно-ориентированный PHP, а ваша установка PHP была скомпилирована с помощью компилятора VC9, вам следует использовать файл php_sqlsrv_53_nts_vc9.dll.(Если вы используете IIS в качестве веб-сервера, вы должны использовать не поточнобезопасную версию, скомпилированную с помощью компилятора VC9).Если вы используете PHP 5.2, вы используете поточно-ориентированный PHP, и ваша установка PHP была скомпилирована с помощью компилятора VC6, вам следует использовать файл php_sqlsrv_52_ts_vc6.dll.

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

5 голосов
/ 13 сентября 2011

Скачать Драйверы 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

Вы можете увидеть статус Thread Safety в phpinfo ().

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

extension=php_sqlsrv_53_*_vc*.dll

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

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

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

Короче говоря, вам нужно установить FreeTDS , и ДА, вам нужно использовать функции mssql_ * в Linux. см. Обновление 2

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...