无法加载动态链接库php_sqlsrv_7_nts.dll,不是一个有效的Win32应用程序。

9

我想知道是否有适用于php 7的sql server驱动程序。在Stack Overflow上看到了另一个问题,它指向这些驱动程序这里

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

extension=php_sqlsrv_7_nts.dll

我在运行每个php脚本时都会遇到这个警告:

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"
4个回答

11

最终解决了这个问题。 在它能够正常工作之前,需要安装一些东西,即:

  1. Microsoft Visual C++ 2015可再发行包(x86),您可以从此处获取

  2. ODBC驱动程序,您可以从此处获取


6

对我而言有效。

1.下载扩展程序windows 7.0 https://github.com/Microsoft/msphpsql/releases

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

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


仅供参考:将会有 x64 和 x86 目录。在 Win 10 上我使用的是 x86;请确保知道或尝试不同版本。 - jmadsen

0

删除 "php_sqlsrv_7_nts" 中的 "php_",只需写成 "sqlsrv_7_nts"


0

Github MSPHPSQL releases下载的扩展文件对我没有用,给了我和OP相同的困境。我查看了Microsoft article,找到了MSSQL Server驱动程序(扩展),请在易于查找的目录中安装它,例如我将其保存在c:\mssql-driver中,然后获取适合您操作系统和PHP版本的扩展(DLL)文件,在我的情况下,由于我使用的是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
在我的 php.ini 文件中,它位于 c:\xampp\php\php.ini,在动态扩展部分中定义了它:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
...
extension=curl
extension=php_pdo_sqlsrv_72_ts_x64.dll
extension=php_sqlsrv_72_ts_x64.dll
...

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