SQLSRV for PHP for MSSQL的配置问题

SQLSRV for PHP for MSSQL的配置问题,php,sql-server,apache,wamp,Php,Sql Server,Apache,Wamp,我正在安装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.dl

我正在安装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部分——当然,我的连接测试程序失败了

可能出了什么问题


有人能帮忙吗?

您的问题是因为您正在使用(或WAMP提供的)64位php,而作为您的sqlsrv驱动程序,最有可能是32位

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

请尝试WAMP 32位版本


此外,如果Apache和my sql对您没有影响(它们只是一个web服务器和一个sql数据库),您可以使用web平台安装程序轻松地安装WISP PHP堆栈

我只使用32位的Apache2.2和PHP5.4以及SQLSRV3.0,现在已经可以使用了。注意,线程安全设置为Yes,因此应该使用SQLSRV ts.dll。这是一场斗争。希望这对其他人有所帮助。

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


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

首先确保PHP向您显示了任何错误,因此请在PHP文件中包含以下内容,您可以将其作为测试执行。ini_集('display_errors','1');ini_集('display_startup_errors','1');错误报告(E_全部);此外,由于扩展无法加载,所以在运行cli php.exe时通常很容易看到,因为默认情况下,它会将错误显示为弹出窗口(只需双击php.exe)。sqlsrv驱动程序的一个常见问题是没有安装sql本机客户端。我确实收到以下错误:C:\wamp\bin\php\php5.4.12>php-php警告:php启动:无法加载动态库“C:/wamp/bin/php/php5”。4.12/ext/php_sqlsrv_54_ts.dll'-%1不是有效的Win32应用程序。在第0I行的“未知”中,我还确保安装了Microsoft SQL Server本机客户端(如9.00.3042.00版的程序和功能所示)。最后一点信息:从phpinfo,它显示ThreadSafe已启用。这就是我选择ts.dll的原因。你是对的。我正在使用32位的Apache和PHP与SQLSRV,它现在可以工作了。@Tiger很高兴它能帮上忙!你需要15个代表才能投票,但你应该能够接受答案。谢谢你将此链接作为答案发布。它救了我一天!我已经找了好几个小时了,x64 dll对我来说是个很好的答案。