错误信息:
Connection could not be established.
Array ( [0] => Array ( [0] => IM003 [SQLSTATE] => IM003 [1] => 160 [code] => 160 [2] => 由于系统错误 5 (SQL Server Native Client 10.0),指定驱动程序无法加载。 [message] => 由于系统错误 5 (SQL Server Native Client 10.0),指定驱动程序无法加载。 ) ) 以下是php网站conn.php的测试代码:<?php
$serverName = "192.168.1.103,1433"; 
$connectionInfo = array("Database"=>"test","UID"=>"sa","PWD"=>"123"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
//$conn = mssql_connect('192.168.1.103,1433', 'sa', '123');if($conn) { 
echo "Connection established.<br>"; 
} else { 
echo "Connection could not be established.<br>"; 
die(print_r(sqlsrv_errors(), true)); 
exit(); 
} $tsql="select UserID,[RegUserName] from UserInfo order by UserID desc";
$stmt = sqlsrv_query($conn,$tsql);
echo "<ul>";
while($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC))
{
     echo '<li>'.$row["RegUserName"].'</li>';
}
echo "<ul>";
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>
配置是:win2003+IIS6+PHP5.3.28+Sql2005我用C++测试数据连接,是正常的,可以连接。php sql 2005

解决方案 »

  1.   

    手册上说
    resource sqlsrv_connect ( string $serverName [, array $connectionInfo ] )
    serverName
    The name of the server to which a connection is established. To connect to a specific instance, follow the server name with a forward slash and the instance name (e.g. serverName\sqlexpress).
    建立了连接到的服务器的名称。要连接到一个特定的实例,用一个正斜杠和实例名(例如SERVERNAME\ SQLEXPRESS的),按照服务器名称。
      

  2.   

    唠叨哥正解,
    $conn = mssql_connect('192.168.1.103,1433', 'sa', '123'); 
    改成
    $conn = mssql_connect('192.168.1.103:1433', 'sa', '123'); 
      

  3.   

    不太懂,我把连接改成:192.168.1.103:1433
    也不行,报错:
    Fatal error: Call to undefined function mssql_connect() in D:\localhost\htdocs\mssql.php on line 5
      

  4.   

    还是用 sqlsrv_connect 连接
    $serverName = "192.168.1.103,1433"; 
    这句改成:
    $serverName = "192.168.1.103:1433"; 
      

  5.   

    用sqlsrv_connect 还是不行啊
      

  6.   

    SERVERNAME 服务器名,不是ip
    一般为 sql server 所在计算机的机器名
    若是本机,可写作 (local)
      

  7.   

    错误一直是这个:
    Connection could not be established.Array ( [0] => Array ( [0] => IM003 [SQLSTATE] => IM003 [1] => 160 [code] => 160 [2] => 由于系统错误 5 (SQL Server Native Client 10.0),指定驱动程序无法加载。 [message] => 由于系统错误 5 (SQL Server Native Client 10.0),指定驱动程序无法加载。 ) ) 
      

  8.   

    php.ini 里有没有打开mssql的相关设置?
      

  9.   

    extension_dir = "D:/php/ext";extension=php_pdo_mssql.dll
    extension=php_sqlsrv_53_ts_vc9.dll
    extension=php_pdo_sqlsrv_53_ts_vc9.dll仔细查了环境变量和C:\WINDOWS\system32\inetsrv目录下的文件以及内容都没问题。也查了IIS6里的php配置也是没问题的。就是加载不了sql的驱动的,无语中。
      

  10.   

    如果你要用php_pdo_mssql.dll,先确认有没有开启php_pdo.dll。
    端口好像是可以忽略的。
      

  11.   

    应该都打开了。
    为什么说应该呢?
    由于我第一次配置php环境,对于楼上两位说的概念略不懂。
    但是我在php.ini里的下面这句代码:
    ; Be sure to appropriately set the extension_dir directive.;*(未打开的)
    *(打开的)
    extension=php_pdo_sqlsrv_53_ts_vc9.dll
    extension=php_sqlsrv_53_nts_vc9.dll
    后面加上了这两句,而ext扩展文件里也有这两个文件。
      

  12.   

    15楼的
    extension=php_sqlsrv_53_nts_vc9.dll
    打错了,
    我写上的是:
    extension=php_sqlsrv_53_ts_vc9.dll
    纠正一下,以免误会。
      

  13.   

    我自己解决了。
    谢谢楼上各位。以后再看到这个问题的朋友,不要问我怎么决的?因为我也不知道,我就按网上之前做过的步骤,把电脑系统重装,重做一遍环境配置,就好了。
    可能是上天看我连续奋斗了三天三夜,熬夜通宵,有点看不下去了吧,所以让我用PHP5.2.17的sqlsrv_*系列函数连上了SQL2005。不说了,散分。