在64位环境中是否有用于PHP的MSSQL Server驱动程序?

时间:2014-05-05 18:47:12

标签: php pdo

是否有适用于PHP的MSSQL Server驱动程序(64位)?

我安装了Apache 2.4(64位)环境。还有PHP 5.5.12(64位)

我在网上搜索了MSSQL Server驱动程序""对于PHP 64位但我什么也没找到。我能找到的只是一个32位。此外,我发现的所有文章都是旧的,没有最新的。

我尝试安装32位驱动程序,但在执行C:\php>php -m时收到警告 这是警告

PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\php_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application. in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\php_pdo_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application. in Unknown on line 0

我从Microsoft Drivers 3.0 for PHP for SQL Server下载了MSSQL服务器驱动程序 如果有一个MSSQL Server驱动程序可用于PHP 64位环境? 如果没有,那么除了必须回到32位PHP环境之外还有解决方法吗?

2 个答案:

答案 0 :(得分:1)

我也遇到过这个问题。我发现你需要确保你的php.ini文件的extension = php_sqlsrv_54_ts.dll区域只在php.ini的Apache位置取消注释。

例如:

如果你有 C:\ Webserver \ bin \ apache \ bin \ php.ini ,你可能有一个 C:\ Webserver \ bin \ php \ php.ini 以及。确保您的扩展引用仅在... \ apache \ bin \ php.ini中。

我花了 3小时才意识到有2个不同的php.ini文件并且错误正在抛出,因为我在错误的php.ini文件中初始化了扩展,但它仍然在那里看由于某些原因。我希望这会有所帮助。

答案 1 :(得分:0)

您是否尝试过更新到php 7?

用于Windows的PHP 5的x64版本是实验性的,不提供64位整数或大文件支持。因此我怀疑MS会发布一个php5版本的驱动程序,特别是因为php 7的版本已经发布了几个月了。

此MSSQL驱动程序于2016年7月发布

下载" SQLSRV40.EXE"来自https://www.microsoft.com/en-us/download/details.aspx?id=20098

可执行文件是一个自解压程序,可以在任何地方解压缩。 您甚至以相同的价格获得PDO。 以下是包中的文件

  • PHP Drivers License Terms.rtf
  • php_pdo_sqlsrv_7_nts_x64.dll
  • php_pdo_sqlsrv_7_nts_x86.dll
  • php_pdo_sqlsrv_7_ts_x64.dll
  • php_pdo_sqlsrv_7_ts_x86.dll
  • php_sqlsrv_7_nts_x64.dll
  • php_sqlsrv_7_nts_x86.dll
  • php_sqlsrv_7_ts_x64.dll
  • php_sqlsrv_7_ts_x86.dll
  • RELEASE.TXT
  • SQLSRV_Readme.htm
  • SQLSRV_ThirdPartyNotices.rtf

使用php 7.0,7.1,7.2进行测试