16

这是我的设置

  • Windows Server 2008 R2 64 位
  • 阿帕奇 2.4.4 64 位
  • PHP 5.4.15 32 位(64 位仍处于试验阶段),线程安全,VC9 编译器
  • Microsoft SQL Server 2012 本机客户端 64 位
  • Microsoft Visual C++ 2010 x86 和 x64

我需要加载微软的 SQLSRV 库。

我已将“extension=php_sqlsrv_54_ts.dll”添加到 php.ini 并将“php_sqlsrv_54_ts.dll”复制到安装 PHP 的 ext 文件夹中。

当我重新启动 apache 时,我的 php 错误日志中出现以下错误,并且 SQLSRV 未在 phpinfo 中列出。

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

我哪里错了?

编辑出于测试目的,我刚刚安装了 PHP 5.5.10 64 位和 VC 2012,但错误保持不变:(

4

4 回答 4

13

我不知道它是否有帮助,但我在 Windows 7 64 位系统上使用了所有 32 位

这是我使用的,我可以使用 SQL Server

httpd-2.4.6-win32-VC9 //apache 2.4
php-5.4.9-Win32-VC9-x86 //php5

如果我的\php\文件夹里面有

  • php5apache2_4.dll

里面\php\ext\我有

  • php_pdo_sqlsrv_54_nts.dll
  • php_pdo_sqlsrv_54_ts.dll

我将此添加到 php.ini 的末尾

[PHP_SQLSRV]
extension=php_sqlsrv_54_ts.dll
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_ts.dll

我记得让它工作是一种正确的痛苦,但现在可以了。如果我还记得,我会编辑我的答案

更新:

我认为这篇博文看起来很熟悉我是如何工作的

http://robsphp.blogspot.co.uk/2012/09/how-to-install-microsofts-sql-server.html

于 2014-03-20T11:11:55.520 回答
3

目前微软 sqldriver 仅适用于 32 位 php 版本。这是我安装sql驱动程序的步骤。

于 2015-08-05T07:15:33.443 回答
3

我遇到过同样的问题。运行需要接口的旧版 5.6 php x64,因为 32 位给出了硬 RAM 限制。

解决方案是在 Rob 提供的非官方驱动程序中。

https://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

我测试了它,它可以在 5.6.33 x64 上正常工作

于 2018-01-12T12:49:45.173 回答
0

Sqlsrv 需要 php x86。当 php 是 64 位架构时会出现此消息。

于 2019-01-25T15:57:57.833 回答