【问题标题】:Configuration Issues with SQLSRV for PHP for MSSQLSQLSRV for PHP for MSSQL 的配置问题
【发布时间】:2014-01-08 17:41:50
【问题描述】:

我正在使用 WampServer 2.4 安装配置:

- Windows 7 64-bit sp1
- WampServer 2.4 64-bit
- PHP 5.4.3 64-bit (came with the WampServer)
- Apache 2.4.4
- Microsoft SQL Server 2012 Native Client 64-bit
- Microsoft SQLSRV 3.0 (php_sqlsrv_54_ts.dll, php_pdo_sqlsrv_54_ts.dll and they are put in c:/wamp/bin/php/php5.4.3/ext/

我编辑了 C:\wamp\bin\apache\Apache2.4.4\bin\php.ini 的行:

- extension_dir = "c:/wamp/bin/php/php5.4.3/ext/"
- extension=php_sqlsrv_54_ts.dll
- extension=php_pdo_sqlsrv_54_ts.dll

我从 Wamp 重新启动了所有服务。

但是我仍然看不到 phpinfo 中的 SQLSRV 部分——当然我的连接测试程序失败了。

可能出了什么问题?

谁能帮忙?

【问题讨论】:

  • 首先确保 php 向您显示任何错误,因此请将以下内容包含在您可以作为测试执行的 php 文件中。 ini_set('display_errors','1'); ini_set('display_startup_errors','1'); error_reporting (E_ALL);
  • 此外,由于无法加载扩展程序,在运行 cli php.exe 时通常很容易看到,因为它默认将错误显示为弹出窗口(只需双击 php.exe)。 sqlsrv 驱动程序的一个常见问题是没有安装 sql native 客户端。
  • 我确实收到了以下错误:C:\wamp\bin\php\php5.4.12>php -a PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/ php/php5. 4.12/ext/php_sqlsrv_54_ts.dll' - %1 不是有效的 Win32 应用程序。在第 0 行的未知中
  • 我还确保安装了 Microsoft SQL Server Native Client(如版本 9.00.3042.00 的程序和功能中所示)。
  • 最后一点信息:来自 phpinfo,它显示 ThreadSafe 已开启。这就是我选择 ts.dll 的原因。

标签: php sql-server apache wamp


【解决方案1】:

您的问题是因为您使用(或 WAMP 给您)64 位 php,而您的 sqlsrv 驱动程序很可能是 32 位。

您的解决方案是切换到 32 位版本的 php(在 64 位运行的好处几乎不存在,除非您需要更大的数据类型),或者重新编译 64 位的 sqlsrv 驱动程序(可能比它更麻烦值得)。

尝试 WAMP 32 位版本。 http://www.wampserver.com/en/#wampserver-32-bits-php-5-4

另外,如果 Apache 和 my-sql 对您来说无关紧要(它们只是一个 Web 服务器和一个 sql 数据库),您可以使用 Web 平台安装程序轻而易举地安装 WISP PHP Stack。 http://www.microsoft.com/web/downloads/platform.aspx

【讨论】:

  • 你是对的。我只使用 32 位的 Apache 和 PHP 和 SQLSRV,它现在可以工作了。
  • @Tiger 很高兴它有帮助!您需要 15 名代表来投票,但您应该能够接受答案。
【解决方案2】:

我只使用带有 SQLSRV 3.0 的 32 位 Apache 2.2 和 PHP 5.4,它现在可以工作了。请注意,线程安全设置为是,因此应使用 SQLSRV ts.dlls。这是一场斗争。希望这对其他人有帮助。

【讨论】:

    【解决方案3】:

    对于那些使用 64 位版本的 PHP 的人,下面链接的非官方 dll 文件将起作用:

    http://robsphp.blogspot.co.uk/2012/06/unofficial-microsoft-sql-server-driver.html

    我在 64 位 Windows 服务器上使用 64 位 WAMP,并在我找到那些 DLL 文件之前将其退出。奇怪的是官方的 DLL 不支持 64 位 PHP,但我很高兴我至少找到了解决方案。

    【讨论】:

    • 感谢您发布此链接作为答案。它拯救了我的一天!
    • 我一直在寻找几个小时,x64 dll 对我来说是一个很好的答案。
    猜你喜欢
    • 2016-09-07
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2012-02-02
    相关资源
    最近更新 更多