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

Соединение между MSSQL и PHP 5.3.5 на IIS не работает

Недавно я установил IIS, PHP 5.3.5 и MySQL, и все это работало.

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

В соответствии с php_info() драйверы MS SQL не загружаются.

Я загрузил php_mssql.dll и включил его в php.ini, но это не сработало. Я узнал, что новая версия PHP использует другую dll. Поэтому я загрузил новый, поместил его в папку ext и обновил php.ini, но все равно не повезло.

php_info() по-прежнему не отображается загрузка драйверов.

Я собираюсь удалить IIS и PHP и установить Apache, который я установил раньше.

Этот вопрос - моя последняя попытка, может ли кто-нибудь помочь?

4b9b3361

Ответ 1

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

Примечание.. Очевидно, что номера версий PHP немного изменились с тех пор, как я написал это, но общие принципы все еще применяются.


Установка Предварительное условие: Собственный клиент SQL необходим для драйверов Microsoft для PHP для SQL Server:

Исходный клиент Microsoft SQL Server 2008 R2 X64 - для 64-разрядных Windows
    или
Собственный клиент Microsoft SQL Server 2008 R2 X32 - для 32-битной Windows

Загрузите и установите драйвер Native Client, соответствующий вашей системе.

Драйверы PHP MS SQL:

Загрузите драйверы Microsoft для PHP для SQL Server:

Драйверы Microsoft для PHP для SQL Server

Файл представляет собой самораспаковывающийся исполняемый файл, поэтому просто используйте 7zip или WinRAR и извлеките файлы в папку по вашему выбору. Теперь нам нужно решить, какой драйвер выбрать, который соответствует вашей установке PHP.

PHP 5.3.5 поставляется в четырех разных вариантах:

  • PHP 5.3.5 Непотекающий VC9
  • PHP 5.3.5 Непотекающий VC6
  • PHP 5.3.5 Threadsafe VC9
  • PHP 5.3.5 Threadsafe VC6

Чтобы указать, какая версия была установлена, откройте файл snapshot.txt, который живет в той же папке, что и php.exe, php-cgi.exe и т.д. Не используйте notepad.exe, потому что файл использует только фид строки (\n) для контуров строк (формат unix) в начале и блокнот управляет их в одну строку.

В файле вы увидите строку (вокруг строки 6 или около середины строки 1 вы использовали блокнот), начиная с: Build::

Build: D:\php-sdk\snap_5_3\vc9\x86\obj\Release - non-threadsafe, VC9 build
Build: D:\php-sdk\snap_5_3\vc6\x86\obj\Release - non-threadsafe, VC6 build
Build: D:\php-sdk\snap_5_3\vc9\x86\obj\Release_TS - threadsafe, VC9 build
Build: D:\php-sdk\snap_5_3\vc6\x86\obj\Release_TS - threadsafe, VC6 build

Это говорит нам, какую версию PHP вы используете.

В папке, в которой были извлечены драйверы MS SQL PHP, выберите драйвер (ы), который соответствует используемой версии PHP (если вы не используете PDO, вам не нужно копировать драйверы php_pdo_),

PHP 5.3.5 Non-threadsafe VC9: php_sqlsrv_53_nts_vc9.dll, php_pdo_sqlsrv_53_nts_vc9.dll
PHP 5.3.5 Non-threadsafe VC6: php_sqlsrv_53_nts_vc6.dll, php_pdo_sqlsrv_53_nts_vc6.dll
PHP 5.3.5 Threadsafe VC9: php_sqlsrv_53_ts_vc9.dll, php_pdo_sqlsrv_53_ts_vc9.dll
PHP 5.3.5 Threadsafe VC6: php_sqlsrv_53_ts_vc6.dll, php_pdo_sqlsrv_53_ts_vc6.dll

Предполагая, что ваша установка PHP живет в C:\PHP, скопируйте (НЕ ПЕРЕМЕСТИТЕ) эти файлы в папку C:\PHP\EXT.

Откройте C:\PHP\PHP.INI и найдите Dynamic Extensions часть файла и добавьте:

extension=php_sqlsrv_53_nts_vc9.dll
extension=php_pdo_sqlsrv_53_nts_vc9.dll   <-- optional

Наконец, чтобы убедиться, что PHP может найти эти расширения, убедитесь, что директива extension_dir в C:\PHP\PHP.INI установлена ​​на C:\PHP\EXT:

extension_dir = C:\PHP\ext

Перезапустите IIS и вызовите phpinfo(). Если все хорошо, вы должны увидеть:

enter image description here

И если вы также загрузили драйвер PDO, вы должны увидеть:

enter image description here

Ответ 2

Вышеупомянутое:

расширение = php_sqlsrv_53_nts_vc9.dll
расширение = php_pdo_sqlsrv_53_nts_vc9.dll

то, что я нашел, неверно.

Следовательно, это, скорее всего, будет:

extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll