我用$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
我用$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的时候,发现它是个句柄。
我一般比较喜欢用$abc = $DbLink->query("select count(*) as count from".DB_SESSION_TABLE); $abc是一个数据集,取数据集中的count变量的值就行了啊。
$abc只是得到query()的返回值.
它显示:Fatal error: Call to a member function on a non-object in c:\apache\htdocs\chat\login.php on line 6
它显示: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的时候,发现它是个句柄。
$abc是一个数据集,取数据集中的count变量的值就行了啊。
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()
这样得出的$a[count]就是正确的值了。用list怎样实现呢?
$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++;
}
$DbLink = new DB;
$DbLink->query("select count(*) from".DB_SESSION_TABLE); // DB_SESSION_TABLE这个量是在那里定义的,有前导的空格吗,若没有则...from" <= from 后面应该有一个空格。否则连接起来将是错误的sql指令,导致查询失败
list($a)= $DbLink->next_record(); // $a=0 的原因是查询失败
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语句结果放到一个二维数组中~,以后操作数组比操作数据库快捷~