连接到MS SQL 2000/2005的正确PHP配置是什么?

Kev*_*Kev 0 php windows sql-server iis-6

我有许多使用FastCGI在Windows 2003/IIS6上运行PHP 5.2.6(非线程安全版本)的服务器.

我有一些问题连接到MS SQL 2000/2005(MySQL连接工作正常,ASP/ASP.NET脚本也可以成功连接到MS SQL).一种解决方案建议将SQL客户端工具ntwdblib.dll文件复制到PHP扩展文件夹,或者在Web服务器上安装所有SQL客户端工具(我不愿意这样做).

建议的另一个解决方案是使用PHPMicrosoft SQL Server 2005驱动程序.这对于编写绿地应用程序看起来很好,但对于像phpBBS或WordPress这样的应用程序,这似乎不起作用.

例如,以下脚本:

<?php 
$host = "mssqlhost"; 
$user = "phpbb2"; 
$password = "phpbb2"; 

$connect_sql_server = mssql_connect($host, $user, $password); 
?>
Run Code Online (Sandbox Code Playgroud)

失败:

PHP警告:mssql_connect()[function.mssql-connect]:无法连接到服务器:第6行的E:\ AppsDev.NET_UK_Minds\phpSqlNC\www\test.php中的mssqlhost

目标是允许PHP脚本连接到在不同服务器上运行的SQL 2000和SQL 2005.我还要补充说,目前升级到更高版本的PHP不是一种选择.

在Windows 2003/IIS6上配置PHP以连接到SQL 2000/2005的正确方法是什么?

Kev*_*Kev 5

在尝试了各种"解决方案"之后,事实证明只需更换ntwdblib.dllPHP可执行文件夹中的文件就可以解决问题.

没有必要安装任何:SQL Native Client,SQL Client ToolsPHP的Microsoft SQL Server 2005驱动程序,正如许多死胡同所暗示的那样.

所需要做的就是确保将ntwdblib.dll2000.80.2039.0版本放入该c:\php文件夹(或者您安装/未压缩的PHP的任何位置),然后重置IIS.PHP文档建议复制ntwdblib.dll到%SYSTEMROOT%\ System32这不起作用,他们还建议这只支持命名管道,这也是错误的.

我没有试过看是否有更高版本的ntwdblib.dll作品,但2000.80.2039.0对我有用.