Вызов неопределенной функции sqlsrv_connect () с использованием WAMP и php 7.1.6

Прежде всего, я прочитал и попробовал то, что нашел в Интернете, даже на этом веб-сайте, но не могу заставить его работать.

У меня есть SQL SERVER 2014, работающий на Windows Server 2012, там у меня есть 64-битный WAMP, на котором запущен Apache на PHP 7.1.6 и необходимо подключиться к базе данных, очевидно, расширение не загружено, потому что я получаю ошибку неопределенной функции.

$ conn = sqlsrv_connect ($ APIDBSERVER, $ соединение);

Что я сделал до сих пор:

  • Установлен драйвер Microsoft® ODBC 11 для SQL Server.
  • Скачал драйвер PHP SQL 4.0 и переместил php_sqlsrv_7_nts_x64.dll в / ext
  • Добавил их в php.ini: extension = php_pdo_sqlsrv_7_nts_x64.dll extension = php_sqlsrv_7_nts_x64.dll

По-видимому, PDO также нуждается в php_pdo.dll, которого нет в WAMP, и я не нашел, откуда его загрузить, поэтому я использую стандартный подход без PDO

  • Недавно даже пытался включить расширения odbc, которые были отключены:

extension = php_odbc.dll

extension = php_pdo_odbc.dll

Я получаю доступ к php.ini через меню WAMP, поэтому я знаю, что редактирую правильный, перезапускал сервер несколько раз, пробуя разные вещи, но у меня закончились идеи.

Не могли бы вы мне помочь?

РЕДАКТИРОВАТЬ: журнал ошибок PHP указывает, что модули не могут быть найдены, но если я проверю этот путь, они прямо там, скопируйте и вставьте имена файлов в php.ini.

Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку c: /wamp64/bin/php/php7.1.6/ext/php_pdo_sqlsrv_7_nts_x64.dll - указанный модуль не может быть найден. в Неизвестном в строке 0

Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку 'c: /wamp64/bin/php/php7.1.6/ext/php_sqlsrv_7_nts_x64.dll' - указанный модуль не может быть найден. в Неизвестном в строке 0

РЕДАКТИРОВАТЬ 2: Пытался перейти на 7.0.20 и получил ту же ошибку, поэтому с php.ini все в порядке, он просто не загружает их по какой-то причине, возможно, попытается загрузить ODBC 13.1?


person Pablo    schedule 01.07.2017    source источник
comment
Возможный дубликат Неустранимая ошибка: вызов неопределенной функции sqlsrv_connect ()   -  person miken32    schedule 20.09.2017


Ответы (2)


Для каждой версии PHP может потребоваться другая версия драйверов Microsoft PHP для SQL Server.

Ссылка ниже показывает совместимость между версиями PHP и MS SQLSRV: https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15 < / а>.

person Arthur Gelcer    schedule 11.09.2020

Из-за способа настройки WAMPServer расширения NTS не работают.

Так что измените свой процесс немного и используйте вместо него Thread safe dll.

person RiggsFolly    schedule 01.07.2017
comment
Попробую, спасибо. РЕДАКТИРОВАТЬ: Я думаю, что это работает, не появляется ошибка функции undefined, поэтому думаю, что да, все равно нужно проверить, подключается ли он, но сэр, я должен вам кофе! - person Pablo; 03.07.2017