$abc = $DbLink->query("select count(*) from".DB_SESSION_TABLE);
$abc 里有你要的值!

解决方案 »

  1.   

    $abc = $DbLink->query("select count(*) from".DB_SESSION_TABLE);这要看你类方法query()的实现的功能/返回值了.
    $abc只是得到query()的返回值.
      

  2.   

    query 的内容是mysql_fetch_array(mysql_query(……))。
      

  3.   

    我用$abc = $DbLink->query("select count(*) from".DB_SESSION_TABLE);
    它显示:Fatal error: Call to a member function on a non-object in c:\apache\htdocs\chat\login.php on line 6
      

  4.   

    我用$abc = $DbLink->query("select count(*) from".DB_SESSION_TABLE);
    它显示:Fatal error: Call to a member function on a non-object in c:\apache\htdocs\chat\login.php on line 6
    没有问题。加上一个$DbLink = new DB;
    就行了。但是我用$abc的时候,发现它是个句柄。
      

  5.   

    我一般比较喜欢用$abc = $DbLink->query("select count(*) as count from".DB_SESSION_TABLE);
    $abc是一个数据集,取数据集中的count变量的值就行了啊。
      

  6.   

    这是两个相关的类定义:
    function query($Query_String)
    {
    $this->connect();
    $this->Query_ID = mysql_query($Query_String,$this->Link_ID);
    $this->Row = 0;
    $this->Errno = mysql_errno();
    $this->Error = mysql_error();
    if (!$this->Query_ID)
    {
    $this->halt("Invalid SQL: ".$Query_String);
    }
    return $this->Query_ID;
    } function next_record()
    {
    $this->Record = mysql_fetch_array($this->Query_ID);
    $this->Row += 1;
    $this->Errno = mysql_errno();
    $this->Error = mysql_error();
    $stat = is_array($this->Record);
    if (!$stat)
    {
    mysql_free_result($this->Query_ID);
    $this->Query_ID = 0;
    }
    return $this->Record;
    }
    我用这样:$DbLink = new DB;
    $DbLink->query("select count(*) from".DB_SESSION_TABLE);
    list($a)= $DbLink->next_record();
    却只得到$a=0的结果。怎么修改那个list呢?原来那个取出值的函数是next_record()
      

  7.   

    而我用$a)= $DbLink->next_record();
    这样得出的$a[count]就是正确的值了。用list怎样实现呢?
      

  8.   

    我用这样:$DbLink = new DB;
    $DbLink->query("select count(*) from".DB_SESSION_TABLE);
    list($a)= $DbLink->next_record();
    却只得到$a=0的结果。怎么修改那个list呢?原来那个取出值的函数是next_record()由于next_record方法的定义,每次仅返回数据库中一条纪录(一个数组),用list达到你的最终目的有难度。可以这样获得所有结果
    $i=0;
    while($record=$DbLink->next_record()){
    $a[$i]=$record;
    $i++;
    }
      

  9.   

    我所用的query语句也是只需要返回一条记录呀。
      

  10.   

    根据你给出的类,可能是这样:
    $DbLink = new DB;
    $DbLink->query("select count(*) from".DB_SESSION_TABLE); // DB_SESSION_TABLE这个量是在那里定义的,有前导的空格吗,若没有则...from" <= from 后面应该有一个空格。否则连接起来将是错误的sql指令,导致查询失败
    list($a)= $DbLink->next_record(); // $a=0 的原因是查询失败
      

  11.   

    <?
    class DB{
       function query($sql){
          if(strlen($sql)<2){
             return $sql;
          }else{
            $sql=mysql_escape_string($sql);
            while($rows=mysql_fetch_array(mysql_query($sql))){
               $result[]=$rows;
            }
          }
           return $result;
       }
    }
    ?>使用:
    --------
    <?php
    $DbLink= new DB;
    ..........
    ..........
    $result=$DbLink->query("select count(*) from".DB_SESSION_TABLE);
    //这里我们要获得的数据为
    echo $result[0][0];
    ?>总体思路   将数据库的记录select语句结果放到一个二维数组中~,以后操作数组比操作数据库快捷~