Microsoft PHP SQL Server驱动程序无法正常工作,无法加载模块


2

我正在尝试安装PHP驱动程序,以便能够与我的SQL Server通信。我在XAMPP和SQL Server 2014上运行PHP 5.5.15。我从这里下载了一个驱动程序包: http://www.microsoft.com/en-us/download/details.aspx?id=20098 (SQLSRV30.EXE)。我已将它们复制到我的php扩展文件夹中 (C:\xampp\php\ext),和 php.ini,指定:

extension=php_pdo_sqlsrv_54_nts.dll 加载现在位于C:\ xampp \ php \ ext的php_pdo_sqlsrv_54_nts.dll驱动程序,但是,当我现在停止并重新启动服务器时,我收到错误消息,如 这个 图像(首先是顶部框,然后是底部框)。

如果我不尝试加载驱动程序,服务器运行正常,而且,我不知道为什么它抱怨没有在第二个框中找到模块,因为它肯定在它正在寻找它的地方。我不确定这是否与此驱动程序适用于PHP 5.4的事实有关,而且我运行的是5.5.15。不幸的是,我只能找到PHP 5.3和5.4的驱动程序,并认为我会用5.4驱动程序给它一个镜头。

Answers:


1

你在用PHP吗? Non Thread Safe 要么 Thread Safe。你可以用你的方式来检查 phpinfo.php 文件。如果您使用PHP非线程安全,则包含DLL名称 nts 应该使用和线程安全使用DLL名称包含 ts。有关详细信息,请参阅下图。您还应该安装SQL本机客户端以访问MSSQL服务器。

enter image description here


嘿Renju,谢谢你的回答。所以,我检查了phpinfo,并且它运行的是一个线程安全的版本,因此我将我使用的模块更改为线程安全模块。现在我使用php_pdo_sqlsrv_54_ts.dll。它不会抱怨不再找到php5.dll,因为我认为它现在正确地找到了php5ts.dll。但是,它现在抱怨模块是用API 20100525编译的,PHP是用API 20121212编译的。我不知道为什么我没有任何包含vc9或vc6的文件,我只在这个屏幕上标记了文件: i.imgur.com/urEmuMv.png
user2606742

使用php_pdo_sqlsrv_53_ts.dll会产生相同的错误,只是使用不同的API版本号
user2606742

我猜这可能是因为这是PHP 5.5.15,驱动程序是5.4 / 5.3,或者你会说什么?
user2606742

@ user2606742:此错误是由于API版本冲突造成的。你正在尝试使用错误的PHP版本和.dll文件。您需要进行编译才能获得5.5 dll。你将从中获取文件 这里 。您将从中走一走 这里 。还读这个 岗位
Renju Chandran chingath

嘿,谢谢,是的,似乎微软还没有发布PHP 5.5和5.6的驱动程序,很多人都抱怨它。无论如何,我从那里得到了司机 robsphp.blogspot.co.uk/2012/06/... ,我相信你的工作也会很好。无论如何,我会将您的答案标记为正确,因为您将注意力集中在线程安全问题上,并且还为5.5和5.6的工作驱动程序提供了链接。谢谢你的帮助!
user2606742
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.