$conn=new COM('ADODB.Connection') or die('连接错误');
$myDSN="Provider=SQLNCLI.1;Persist Security Info=True;Data Source=localhost;User ID=sa;Password=sasa;Initial Catalog=db_php";
$conn->open($myDSN) or die('连接语句无效');$sql="select * from [username]";
$rs=$conn->execute($sql);
if($rs->eof()){
print('没有任何数据');}else{
while(!$rs->eof()){
echo $rs->fields[0]->value;
$rs->movenext();}}
上面代码出现 “连接语句无效” 什么原因呢。

解决方案 »

  1.   

    Provider=SQLNCLI.1;Persist Security Info=True;Data Source=localhost;User ID=sa;Password=sasa;Initial Catalog=db_php这里不符合当前所连接的数据库。
      

  2.   

    你连接的是什么数据库?
    用ADODB连接不同的数据库,会需要不同的接口。如果接口不正确,就会无法连接。
    比如,有的是uid,有的是user id。
    先确认一下你的数据库吧。
      

  3.   

    我的数据库 是 sqlserver2005   具体怎么链接 帮我 写下 谢谢啦。
      

  4.   

    $myDSN="PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER=localhost\SQLSERVER};DATABASE=db_php;UID=sa;PWD=sasa;";
      

  5.   

    少一个左大括号,修正如下:
    $myDSN="PROVIDER=MSDASQL;DRIVER={SQL Server};SERVER={localhost\SQLSERVER};DATABASE=db_php;UID=sa;PWD=sasa;";
    你要将SERVER的值改为你自己的数据库服务器的名字和SQLServer2005的实例名
      

  6.   


    $myDSN="PROVIDER=MSDASQL;DRIVER={SQL Server};zc38={localhost\这里是实例名};DATABASE=db_php;UID=sa;PWD=sasa;";但是我怎么查询 我的数据库的实例名呢,谢谢啦。
      

  7.   

    odbc_connect("Driver={SQL Server};Server=$dbserver;Database=$dbname;", $dbuser, $dbpsd);
    MSSQL,有的Server名字是“机器名(或IP)\实例名”,有的干脆只有机器名或者IP地址。
    我测试的一个是VS自带的EXPRESS版本,所以是机器名\SQLEXPRESS,而另一台企业版的,则只有机器名。
    你可以去企业管理器里登陆看看,哪个名字可以正确登陆。
    另外,别忘记开启远程访问设置。