无法加载动态库 php_sqlsrv_7_nts.dll 不是有效的 Win32 应用程序

Unable to load dynamic library php_sqlsrv_7_nts.dll is not a valid Win32 application

我想看看是否有 php 7 的 sql 服务器驱动程序。Stack Overflow 上的另一个问题向我指出了这些驱动程序 here

所以我将 php_sqlsrv_7_nts.dll 安装到我的 ext 文件夹中,并将以下行添加到我的 php.ini:

extension=php_sqlsrv_7_nts.dll

我在每个 php 脚本上都收到此警告 I 运行:

Warning: PHP Startup: Unable to load dynamic library 'C:\php7\ext\php_sqlsrv_7_nts.dll' - %1 is not a valid Win32 application

我知道这只是一个预发布版本,还有很多事情需要解决,但我希望至少能做一些基本的事情。

我哪里做错了,还是我需要再等一段时间才能有更好的发布。

一些可能有用的信息:

PHP Version => 7.0.5

System => Windows NT GB275L-I-T-5654 6.3 build 9600 (Windows 8.1 Professional Edition) i586
Build Date => Mar 30 2016 09:57:56
Compiler => MSVC14 (Visual C++ 2015)
Architecture => x86
Configure Command => cscript /nologo configure.js  "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--with-pdo-oci=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--with-oci8-12c=c:\php-sdk\oracle\x86\instantclient_12_1\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--without-analyzer" "--with-pgo"

终于解决了这个问题。需要安装更多东西才能工作,即:

  1. Microsoft Visual C++ 2015 Redistributable (x86),您可以从 here

  2. 获得
  3. 您可以从 here

  4. 获得的 ODBC 驱动程序

对我有用。

1.Download 扩展 windows 7.0 https://github.com/Microsoft/msphpsql/releases

2.And然后根据系统要求粘贴到ext文件夹。 注意:只粘贴线程安全版本(php_pdo_sqlsrv_7_ts.dll,php_sqlsrv_7_ts.dll)

3.And 编辑 php.ini 文件将此扩展名添加到您的 php.ini 文件并重新启动并检查

来自 Github MSPHPSQL releases did not work for me and gave me the same predicament with the OP. I went to this Microsoft article which gave me the driver (extension) for MSSQL Server 的扩展文件,继续将其安装在您可以轻松找到的目录中,在我的例子中,我将其保存在我的 c:\mssql-driver 中,然后在其中获取扩展 (DLL) 文件适合你的 OS 和 PHP 版本,在我的例子中,因为我使用 PHP 7.2.x 和 x64 Windows 我选择了以下文件并将其放入我的 PHP 扩展目录 c:\xampp\php\ext:

  1. php_pdo_sqlsrv_72_ts_x64.dll
  2. php_sqlsrv_72_ts_x64.dll

并且在我位于 c:\xampp\php\php.iniphp.ini 中,在动态扩展部分下定义了它:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
...
extension=curl
extension=php_pdo_sqlsrv_72_ts_x64.dll
extension=php_sqlsrv_72_ts_x64.dll
...

删除“php_sqlsrv_7_nts”上的“php_”。只需写“sqlsrv_7_ntfs”