如何在php XAMPP中安装SQLSRV扩展

8
我正在尝试安装SQLSRV扩展。我的PHP版本是7.2(XAMPP 3.2.2),我使用的操作系统是Windows 10。我从这里下载了.dll文件:https://github.com/Microsoft/msphpsql/releases。然后,我将它解压到xampp/php/ext文件夹中enter image description here
之后,我打开了php.ini文件并添加了这个扩展:
  1. extension=php_pdo_sqlsrv_72_nts
  2. extension=php_sqlsrv_72_nts
接下来,我重新启动了Apache服务器。
不幸的是,当我打开phpinfo网站时,我没有看到这个扩展。而且,当我打开XAMPP shell并输入php时,我收到了一个错误消息。

PHP Startup: Unable to load dynamic library 'php_pdo_sqlsrv_72_nts' (tried: C:\xampp\php\ext\php_pdo_sqlsrv_72_nts (Module was not found.)

我的php.ini文件中的extension_dir设置为extension_dir="C:\xampp\php\ext"
体系结构是x86。
我做错了什么?
编辑: 我将nts文件更改为ts文件,现在它可以工作了。
2个回答

6

我通过以下方式在PHP.ini文件中解决了这个问题:

extension=mysql
extension=sqlsrv
extension=pdo_sqlsrv

因此,您需要删除“php_”和“.dll”。


1
虽然这可能回答了问题,但提供解决问题的具体细节和/或原因会提高答案的长期价值。阅读此内容 - Shanteshwar Inde
1
这个答案对我有用。在应用了这个答案之前,我没有在phpinfo()中看到pdo_sqlsrv。 - ClownCoder
extension=pdo_sqlsrv - 只需要这个,但要注意 PHP 的版本和 DLL。我用最新的 PHP 执行了所有步骤,但没有成功。使用稍旧一点的版本则一切正常。检查 phpinfo 是否有 sqlsrv 条目,因为 DLL 虽然加载了,但无法正常工作。 - baron_bartek
我在shell中遇到了错误 Warning: PHP Startup: Unable to load dynamic library 'mysql' (tried: G:\xampp\php\ext\mysql (The specified module could not be found.), G:\xampp\php\ext\php_mysql.dll (The specified module could not be found.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'sqlsrv' (tried: G:\xampp\php\ext\sqlsrv (The specified module could not be found.), G:\xampp\php\ext\php_sqlsrv.dll (The specified module could not be found.)) in Unknown on line 0 - Moeez
Warning: PHP Startup: Unable to load dynamic library 'sqlsrv' (tried: G:\xampp\php\ext\sqlsrv (The specified module could not be found.), G:\xampp\php\ext\php_sqlsrv.dll (The specified module could not be found.)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv' (tried: G:\xampp\php\ext\pdo_sqlsrv (The specified module could not be found.), G:\xampp\php\ext\php_pdo_sqlsrv.dll (The specified module could not be found.)) in Unknown on line 0 - Moeez
Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv' (tried: G:\xampp\php\ext\pdo_sqlsrv (The specified module could not be found.), G:\xampp\php\ext\php_pdo_sqlsrv.dll (The specified module could not be found.)) in Unknown on line 0 - Moeez

5
请确保扩展名和php.ini文件在相同的路径中,并且您正在运行相同的php.exe文件。 如果没有路径问题,您可以尝试以下操作: 从您的php.ini文件中删除前缀

php_

,因为php会自动使用带有前缀的文件名进行搜索:php_pdo_sqlsrv_72_ts_x86.dll 例如:如果您将dll文件注册为:

pdo_sqlsrv_72_ts_x86

,那么php将按如下方式搜索dll文件:

php_php_pdo_sqlsrv_72_ts_x86.dll


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接