“php_sqlsrv_56_ts.dll”扩展文件存在,但在php.ini中没有“extension=php_sqlsrv_56_ts.dll”的行。

7

我想要使用 php 连接 sql-server 数据库。 我从这个非官方网站下载了 64 位的 php_pdo_sqlsrv_56_ts.dllphp_sqlsrv_56_ts.dll 文件。我将这些 dll 文件提取到了 D:\wamp64\bin\php\php5.6.31\ext 目录下。 在 php.ini 文件中,我添加了以下几行代码,并重新启动了 WAMP:

[PHP_SQLSRV]
extension=php_sqlsrv_56_ts.dll
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_56_ts.dll

在WAMP中的php扩展中,它显示了这个:enter image description here。点击这些扩展后,php控制台会显示错误信息:“The 'php_sqlsrv_56_ts.dll' extension file exists but there is no 'extension=php_sqlsrv_56_ts.dll' line in php.ini.” 我不知道问题出在哪里,我在这里找到了同样的问题但那是版本(32/64位)的问题,而我已经下载了64位扩展,所以也不是我的问题。如果有任何建议,将非常有帮助。

1
你在 php.ini 中做了任何更改吗?你需要像这样的东西 extension_dir = C:\php\extensions。你需要更改 extension_dir 设置,以指向扩展所在的目录。 - Ilyes
1
@Sami extension_dir 已经在 php.ini 中设置好了,我将这些 DLL 文件添加到了该目录中,该目录是根据 etension_dir 设置的。 - whoosis
2个回答

11

显然,有两个php.ini文件,一个位于wamp> bin> PHP文件夹中,另一个位于Apache文件夹中,也可以从wamp托盘图标中访问。我更新了php文件夹中的文件,并且在检查时,wamp(托盘图标)中的php.ini未被更新。更新该文件后,问题得到解决。


1
天哪...这浪费了太多时间。感谢解决方案! - Sean409
1
如何编辑第二个php.ini文件?我在apache文件夹中没有php.ini文件。 - Bhargav Variya

2

C:\wamp64\bin\php\php7.4.9\phpForApache.ini文件与C:\wamp64\bin\apache\apache2.4.46\bin\php.ini文件是相同的,它们是连接的文件。

当您更改其中一个文件时,另一个文件会自动更新。

例如,如果您使用php 7.4.9,则应编辑此C:\ wamp64 \ bin \ apache \ apache2.4.46 \ bin \ php.ini或C:\ wamp64 \ bin \ php \ php7.4.9 \ phpForApache.ini

而不是这个-> C:\ wamp64 \ bin \ php \ php7.4.9 \ php.ini

此外,您还应添加正确版本的dll或类似文件。

例如,对于7.4.9,它应该包含74等。

像这样:

extension=php_pdo_sqlsrv_74_ts_x64.dll

此外,仅重启Apache是不够的,您应该重新启动WAMP。

enter image description here


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