$sql="select count(*) as ct  from xxx ";   //查询tb_bookinfo表中的所有商品
//echo$rs=new com("adodb.recordset");                    //用com类声明一个记录集对象$rs->open($sql,$conn,1);    $allcount=$rs->fields["ct"];
$rs->Close();
$sql=" select count(*) as ct from xxx1";$rs->open($sql,$conn,1);    $newcount=$rs->fields["ct"];
echo $allcount;//出错echo $newcount;

解决方案 »

  1.   

    你的open函数做什么处理的?
    还有你的 $conn 在哪里赋值?
    fields["ct"] ct是字段吗?如果是的话,你没读取ct这个字段
      

  2.   

    一条数据取出的是没有问题因为$rs->fields会识别
      

  3.   

    $sql="select count(*) as ct from xxx "; //查询tb_bookinfo表中的所有商品
    //echo$rs=new com("adodb.recordset"); //用com类声明一个记录集对象$rs->open($sql,$conn,1);   $allcount=$rs->fields["ct"];echo $allcount;$rs->Close();
    $sql=" select count(*) as ct from xxx1";$rs->open($sql,$conn,1);   $newcount=$rs->fields["ct"];echo $newcount;
    问题出在$newcount和$allcount的值是一样的,但是事实是不一样的
      

  4.   

    $rs->Close();这是清空$rs这个变量么?如果是的话,你下面的$newcount肯定是和上面的$allcount一样,你在下面再new com("adodb.recordset");应该没问题了
      

  5.   

    已经将RS这个变量赋给另一个变量了,为什么关闭后变量会被清空,和ASP截然不同
      

  6.   

    Catchable fatal error: Object of class variant could not be converted to string in ...$allcount = $rs->fields["ct"] 返回的是一个 variant 对象
    当你 $rs->Close() 时,这个 variant 对象的值域就不存在了
    所以当 echo $allcount; 时就会报错正确的写法是
    $allcount = $rs->fields["ct"]->value;这样就能把值保留下来