2013-03-29 99 views
6

我已经看过很多这些帖子,并且已经查看了所有这些帖子,但仍然无法运行SQLSRV扩展。你能帮我吗?我将发布的所有信息,我有如下:在WAMP上为PHP安装SQLSRV扩展

  • 的Windows 7 64位
  • WampServer 2.2 32位
  • PHP 5.4.3 32位
  • 的Apache 2.2.22(不能告诉我们,如果VC6或者VC9)
  • 的Microsoft SQL Server 2012 Native Client的64位

我下载SQLSRV30.exe。我将dll文件解压到C:\ wamp \ bin \ php \ php5.4.3 \ ext。

在我的php.ini:

  • 下extension_dir = “C:/wamp/bin/php/php5.4.3/ext/”
  • 延长= php_sqlsrv_54_ts.dll
  • extension = php_pdo_sqlsrv_54_ts.dll

我知道SQLSRV30.exe是内置为32位的。这就是为什么我有32位版本的Wamp和PHP。我也知道Wamp中没有任何东西是非线程安全的。
如果我查看phpinfo()我应该看到一个'sqlsrv'部分,但我目前没有。

我在做什么错?

+0

请参阅:http://docs.gurock.com/testrail-admin/howto-installing-sqlsrv – Arvind

+0

您的引用链接和我的情况之间的差异:我使用Apache而不是IIS。我相信我正在使用线程安全版本的PHP而不是非线程安全的,但我怎么能确定?总之,从Microsoft的SQLSRV PHP扩展下载页面没有名为php_sqlsrv.dll的文件。有许多不同版本的sqlsrv文件,所有这些文件都适用于非线程安全与线程安全,PHP 5.3.x与PHP 5.4.x以及VC6与VC9之类的各种版本。我在这里找到了下载页面:http://www.microsoft.com/en-us/download/details.aspx?id=20098 – user1971193

+0

你可以通过查看php文件夹来判断它是否是ts(线程安全的)。 TS安装使用php5ts.dll,其中非ts使用php5.dll。 – Wranorn

回答

2

今天早上我遇到了一些麻烦,但是我发现我有一个x64 WampServer ......哪个不能正常工作。

因此,我重新安装了一个x86 WampServer,并遵循了我在PHP.net上找到的所有内容(http://php.net/manual/en/sqlsrv.requirements.php)。因为我看到了这个帖子,而我一直在寻找我的x64解决方案,我想我会回来,并尽力帮助你。

1)如果你有PHP 5.4#上WAMP,我敢打赌,它的TS,VC9

2)找到正确的'php.ini':我不在'bin/php#'文件夹中,而是在'bin/apache#'文件夹中(C:\ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini)

3)有2个SQLSRV驱动程序版本,2.0和3.0,确保你有3.0!

从外观上看,我们有完全一样的Wamp版本,所以......我敢肯定你必须使用'php_sqlsrv_54_ts.dll'和'php_pdo_sqlsrv_54_ts.dll'。

4

如果您正在编辑c:\wamp\bin\php\php.ini,请不要编辑该文件,只需编辑wamp server php.ini文件给出的文件,然后转到php服务器,然后php.ini然后您就可以编写ini文件。

我有同样的问题,这固定了我。

此外,还要确保你右键点击WAMP快捷方式,“以管理员身份运行”

+0

我没有意识到我必须以管理员身份运行WAMP - 必须是一个重要的步骤。 –

1

你看到你的新的DLL在你的PHP扩展列表?如果是这样,点击它,并确保它的名字有一个V. (左键单击希望绿色WAMP符号PHP - > PHP扩展 - >您的DLL的名称)

我与PHP 5.5,SQLSRV31.exe,php_sqlsrv_55_nts.dll和php_sqlsrv_55_ts.dll类似的问题。奇迹般地工作。

+0

也验证扩展名显示在phpinfo()中。使用WAMP,单击状态栏中的绿色W,单击localhost,然后单击phpinfo() –