提问者:小点点

无法通过PHP设置MS SQL server访问


设置:

  • Windows 10 Pro x64
  • PHP版本:7.2.10
  • ODBC v17已安装

php_sqlsrv_7_nts_x64.dll和php_sqlsrv_7_ts_x64.dll(所有dll都在C:\xampp\php\exts中)

加载配置文件C:\xampp\php\php.ini

php。ini:

line 1965 of php.ini:
extension=php_sqlsrv_7_nts_x64.dll

lines 910-913: (previoius attempt)
[PHP_SQLSRV]
;extension=php_sqlsrv.dll
extension_dir = "C:\xampp\php\ext"  
extension=php_sqlsrv_7_ts_x64.dll

cmd iisreset和Apache服务器在每次尝试之间重新启动

但是我越来越

致命错误:未捕获错误:调用未定义的函数sqlsrv_connect()

我还完全关闭了xampp并多次重新启动它。

要明确的是,没有php。C:\Windows中的ini文件打开php。ini通过Xampp的配置按钮打开C:\Xampp\php\php。ini,这就是我一直在修改的文件。

[08-Apr-2021 22:20:04 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'php_sqlsrv_7_ts_x86' (tried: C:\xampp\php\ext\php_sqlsrv_7_ts_x86 (The specified procedure could not be found.), C:\xampp\php\ext\php_php_sqlsrv_7_ts_x86.dll (The specified module could not be found.)) in Unknown on line 0

[08-Apr-2021 22:20:04 UTC]PHP警告:PHP启动:无法加载动态库“PHP_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_sqlsrv_7_ts_x86(找不到指定的过程),C:\xampp\php\ext\php\u php\u sqlsrv\u 7\u ts\u x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:04 UTC]PHP警告:PHP启动:无法加载动态库“PHP_pdo_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_pdo_sqlsrv_7_ts_x86)(找不到指定的过程),C:\xampp\php\ext\php_php_pdo_sqlsrv_7_ts_x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:05 UTC]PHP警告:PHP启动:无法加载动态库“PHP_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_sqlsrv_7_ts_x86(找不到指定的过程),C:\xampp\php\ext\php\u php\u sqlsrv\u 7\u ts\u x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:05 UTC]PHP警告:PHP启动:无法加载动态库“PHP_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_sqlsrv_7_ts_x86(找不到指定的过程),C:\xampp\php\ext\php\u php\u sqlsrv\u 7\u ts\u x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:05 UTC]PHP警告:PHP启动:无法加载动态库“PHP_pdo_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_pdo_sqlsrv_7_ts_x86)(找不到指定的过程),C:\xampp\php\ext\php_php_pdo_sqlsrv_7_ts_x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 15:20:07 America/Los_Angeles]PHP致命错误:未捕获错误:调用C:\xampp\htdocs\chart\ms_sql_test中未定义的函数sqlsrv_connect()。php:19堆栈跟踪:#0{main}在C:\xampp\htdocs\chart\ms#u sql_测试中抛出。php第19行[08-Apr-2021 22:20:22 UTC]php警告:php启动:无法加载动态库“php_sqlsrv_7_ts_x86”(尝试:C:\xampp\php\ext\php_sqlsrv_7_ts_x86(找不到指定的过程),C:\xampp\php\ext\php\u php\u sqlsrv\u 7\u ts\u x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:22 UTC]PHP警告:PHP启动:无法加载动态库“PHP_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_sqlsrv_7_ts_x86(找不到指定的过程),C:\xampp\php\ext\php\u php\u sqlsrv\u 7\u ts\u x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:22 UTC]PHP警告:PHP启动:无法加载动态库“PHP_pdo_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_pdo_sqlsrv_7_ts_x86)(找不到指定的过程),C:\xampp\php\ext\php_php_pdo_sqlsrv_7_ts_x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:22 UTC]PHP警告:PHP启动:无法加载动态库“PHP_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_sqlsrv_7_ts_x86(找不到指定的过程),C:\xampp\php\ext\php\u php\u sqlsrv\u 7\u ts\u x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:22 UTC]PHP警告:PHP启动:无法加载动态库“PHP_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_sqlsrv_7_ts_x86(找不到指定的过程),C:\xampp\php\ext\php\u php\u sqlsrv\u 7\u ts\u x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 22:20:22 UTC]PHP警告:PHP启动:无法加载动态库“PHP_pdo_sqlsrv_7_ts_x86”(尝试:C:\xampp\PHP\ext\PHP_pdo_sqlsrv_7_ts_x86)(找不到指定的过程),C:\xampp\php\ext\php_php_pdo_sqlsrv_7_ts_x86。dll(找不到指定的模块。))在第0行未知[08-Apr-2021 15:20:23 America/Los_Angeles]PHP致命错误:未捕获错误:调用C:\xampp\htdocs\chart\ms_sql_test中未定义的函数sqlsrv_connect()。php:19堆栈跟踪:#0{main}在C:\xampp\htdocs\chart\ms#u sql_测试中抛出。php第19行[08-Apr-2021 15:20:25 America/Los_Angeles]php致命错误:未捕获错误:调用C:\xampp\htdocs\chart\ms_sql_test中未定义的函数sqlsrv_connect()。php:19堆栈跟踪:#0{main}在C:\xampp\htdocs\chart\ms#u sql_测试中抛出。php第19行


共1个答案

匿名用户

这个问题是通过修正微软的dll的版本来修复的,该版本旨在与我拥有的PHP版本一起工作。

我的PHP是v7。2 php_sqlsrv_7_XX_XX。dll不适用于PHP7.2

相反,我不得不下载php_sqlsrv。dll来自https://pecl.php.net/package/sqlsrv/5.9.0preview1/windows以匹配我的PHPV7。2.

这样做,然后更新配置立即修复了问题(在Apache重新启动后)!

请看https://docs.microsoft.com/en-us/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-ver15#驱动程序版本,以获取与您正在运行的PHP版本匹配的正确MS'dll版本。