2

当我启动 XAMPP 时,尝试加载 PHP 的 SQL Server 驱动程序时出现以下错误。

在动态链接库 D:\xampp\php\ext\php_sqlsrv_72_ts_x64.dll 中找不到过程入口点 _zend_hash_index_update@@24。

我已尝试下载 Microsoft SQL Server Driver 4.0 和 5.6 for php,并使用扩展目录中的 php_sqlsrv_7_ts_x64.dll 和 php_sqlsrv_72_ts_x64.dll 并将它们添加到 php.ini。

我发现这个帖子与这个错误有关:

IIS 上的 PHP 7:找不到 Call_user_function

在系统要求中,对于 MSSQL 驱动程序 4.0,它声明该驱动程序适用于 PHP 7.0+。在尝试 5.6 时,我发现这篇文章说它支持 PHP 7.3:

https://blogs.msdn.microsoft.com/sqlphp/2019/03/01/drivers-5-6-for-php-for-sql-server-released/

无论哪种方式,我仍然收到相同的错误。我还有什么需要检查的吗?

4

2 回答 2

2

简而言之,请访问https://docs.microsoft.com/en-us/sql/connect/php/microsoft-php-drivers-for-sql-server-support-matrix?view=sql-server-2017#php-版本支持

然后在显示的表格中将您的 php 版本与驱动程序版本进行比较。

最后下载一个正确的版本,仅此而已。

于 2020-08-03T15:21:01.153 回答
2

使用 7.3 代替( php_sqlsrv_73_...)

我也收到了这个错误,试图加载php_sqlsrv_7_nts_x86.php-7.3.8-nts-Win32-VC15-x86

在此处输入图像描述

如果您查看microsoft 站点上的此支持矩阵,您会看到许多其他支持您的 PHP 版本的驱动程序选项。

我下载了最新的 SQLSRV561 包。那成功了。

所以要明确一点,

我加载php_sqlsrv_73_nts_x86.dll(从 SQLSRV5.6.EXE)而不是 php_sqlsrv_7_nts_x86(从 SQLSRV4.0.EXE),这解决了问题。

于 2019-08-15T15:25:26.160 回答