Использование PDO SQLSRV с PHP не работает - PullRequest
0 голосов
/ 16 мая 2018

Я пытался заставить работать PDO SQLSRV (в Windows Server 2012 R2) некоторое время и нашел инструкции о том, как я должен установитьЭто так, что драйверы загружаются при запуске PHP, но он не работает.

Я нашел правильный файл php.ini (и проверил, закомментировав некоторые другие драйверы PDO, чтобы убедиться).Я добавил соответствующую строку в конце [ExtensionList] следующим образом:

extension=php_pdo_sqlsrv_7_ts_x64.dll

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

[ExtensionList]
; extension=php_mysqli.dll
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
extension=php_pdo_mysql.dll
; extension=php_pdo_sqlite.dll
extension=php_imap.dll
extension=php_tidy.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll
extension=php_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_nts_x64.dll
extension=php_sqlsrv_7_nts_x64.dll
extension=php_pdo_sqlsrv_72_ts_x64.dll
extension=php_sqlsrv_72_ts_x64.dll
extension=php_pdo_sqlsrv_72_nts_x64.dll
extension=php_sqlsrv_72_nts_x64.dll
extension=php_pdo_sqlsrv_72_ts.dll
extension=php_sqlsrv_72_ts.dll

Так что под PDO должны быть mysql и sqlsrv, но я вижу только mysql.

enter image description here

Я что-то упустил?

Обновление

Я попытался обновить файл php.ini, чтобы у него был полный путь к ним.расширения, по-прежнему не имеют никакого значения.

Архитектура = x64, Потокобезопасность = отключена, Версия PHP = 7.2.2, Драйвер ODBC для Microsoft 17 для SQL Server

Обновление II

Я попытался удалить все ссылки, кроме 2, которые мне нужны, и дал им полные пути к каталогам:

[ExtensionList]
; extension=php_mysqli.dll
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
; extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension="C:\Program Files\PHP\v7.2\ext\php_pdo_sqlsrv_72_nts_x64.dll"
extension="C:\Program Files\PHP\v7.2\ext\php_pdo_sqlsrv_7_nts_x64.dll"
extension=php_pdo_sqlsrv.dll
extension=php_imap.dll
extension=php_tidy.dll

Я все еще не могу заставить работать SQL SRV, этопо-прежнему не отображается в распечатке PHPInfo.

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

ОБНОВЛЕНИЕ

Вчера я переустановилPHP 7.2 (теперь версия 7.2.6) с здесь .И переустановил Microsoft Drivers 5.2 для PHP для SQL Server с здесь .И обновил мой файл php.ini следующим образом:

[ExtensionList]
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
extension=php_imap.dll
extension=php_tidy.dll
extension=php_pdo_sqlsrv.dll
extension="C:\Program Files\PHP\v7.2\ext\php_pdo_sqlite.dll"
; extension=php_pdo_mysql.dll
extension=php_mysqli.dll

Чтобы посмотреть, поможет ли это или что-то изменит.php_pdo_sqlsrv.dll все еще не загружается, затем php_pdo_sqlite.dll загрузился, и они оба находятся в той же папке, что и php_mysqli.dll, который также загружен.Я следовал инструкциям, которые нашел здесь , и, похоже, ничего не работает для загрузки этой библиотеки SQL SRV.

1 Ответ

0 голосов
/ 10 июля 2018

Я наконец смог понять это и заставить его работать.Я попытался установить CakePHP, который требует Composer.Поэтому при установке Composer я получил ошибку, которую раньше не видел, и опубликовал вопрос об этом.Конечный результат заключается в том, что мне пришлось переустановить PHP заново, а затем обновить php.ini, чтобы были только версии TS PDO SQLSRV.

Другой вопрос здесь

...