【发布时间】:2021-04-08 21:18:20
【问题描述】:
设置:
- Windows 10 专业版 x64
- PHP 版本:7.2.10
- 已安装 ODBC v17
php_sqlsrv_7_nts_x64.dll 和 php_sqlsrv_7_ts_x64.dll(所有 dll 都在 C:\xampp\php\ext 中)
加载的配置文件 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 并重新启动了很多次。
需要明确的是,C:\Windows 中没有 php.ini 文件 通过 Xampp 的配置按钮打开 php.ini 会打开 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
[2021 年 4 月 8 日 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_php_sqlsrv_7_ts_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 (The specified module could not be found.)) 在 Unknown on line 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_php_sqlsrv_7_ts_x86.dll (The specified module could not be found.)) 在 Unknown on line 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_php_sqlsrv_7_ts_x86.dll (The specified module could not be found.)) 在 Unknown on line 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 (The specified module could not be found.)) 在 Unknown on line 0 [08-Apr-2021 15:20:07 America/Los_Angeles] PHP 致命错误:未捕获的错误:调用 C:\xampp\htdocs\chart\ms_sql_test.php:19 中的未定义函数 sqlsrv_connect() 堆栈跟踪: #0 {主要} 在第 19 行的 C:\xampp\htdocs\chart\ms_sql_test.php 中抛出 [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_php_sqlsrv_7_ts_x86.dll (The specified module could not be found.)) 在 Unknown on line 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_php_sqlsrv_7_ts_x86.dll (The specified module could not be found.)) 在 Unknown on line 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 (The specified module could not be found.)) 在 Unknown on line 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_php_sqlsrv_7_ts_x86.dll (The specified module could not be found.)) 在 Unknown on line 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_php_sqlsrv_7_ts_x86.dll (The specified module could not be found.)) 在 Unknown on line 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 (The specified module could not be found.)) 在 Unknown on line 0 [2021 年 4 月 8 日 15:20:23 America/Los_Angeles] PHP 致命错误:未捕获的错误:调用 C:\xampp\htdocs\chart\ms_sql_test.php:19 中的未定义函数 sqlsrv_connect() 堆栈跟踪: #0 {主要} 在第 19 行的 C:\xampp\htdocs\chart\ms_sql_test.php 中抛出 [08-Apr-2021 15:20:25 America/Los_Angeles] PHP 致命错误:未捕获的错误:调用 C:\xampp\htdocs\chart\ms_sql_test.php:19 中的未定义函数 sqlsrv_connect() 堆栈跟踪: #0 {主要} 在第 19 行的 C:\xampp\htdocs\chart\ms_sql_test.php 中抛出
【问题讨论】:
-
我猜,你编辑了错误的 php.ini 文件。
C:\xampp\php\php.ini真的是 apache 使用的php.ini文件吗? -
一个 dll 是线程安全的 (ts) 而另一个不是 (nts,),这可能是您的问题。检查您的 php 是 ts 还是 nts 并下载正确的 dll ;)
-
谢谢,我现在会仔细检查这两个!
-
re: 对不起,我已经尝试了所有 4 个 dll,但都没有工作。 PHP Info 说线程安全已启用,所以我将保留 php_sqlsrv_7_ts_x86.dll,因为 PHP info 实际上报告的是架构 x86
-
@Larnu,这不是 PHP 信息的加载配置文件指向的那个吗?
标签: php sql-server apache