getRow()函数中会出现致命错误

时间:2013-10-25 05:50:43

标签: php mysql cakephp pear

我正在使用此方法从数据库中获取行并显示在frontend上,但是当它执行时它会给出一个错误的错误

  

致命错误:在第432行的D:\ xampp \ htdocs \ Deshbandhu \ class \ tblOp.php中的非对象上调用成员函数getRow()

和我正在使用的功能代码是

 function getRowFields($fields,$where = NULL, $order = NULL){
    global $db; 
    $fields = ($fields) ? " $fields "           : " * ";
    $where  = ($where) ? " WHERE $where "       : "";
    $order  = ($order) ? " ORDER BY $order "    : " ORDER BY {$this->primaryKey} ";
    $sql    = "SELECT $fields FROM {$this->table} $where $order;"; // limit 0,1
    $res    =$db ->getRow($sql, DB_FETCHMODE_ASSOC);
    echo $res; exit;
    if (DB::isError($res))
        return $this->raiseError($res);
    return $res;
}

和getRow()的定义是

function getRow($where = NULL, $order = NULL,$fields=NULL){
    global $db; 

   $sql    = $this->buildQuery(NULL, TBLOP_EXECUTE_SELECT, $where, $order,$fields);

    //echo $sql.'<br>';
    $res    = $db->getRow($sql, DB_FETCHMODE_ASSOC);

    if (DB::isError($res))
        return $this->raiseError($res);

    return $res;
}

此代码在实时服务器上运行并且没有出现任何错误,但是当我在本地服务器上执行它时,它显示的错误是这样的。

3 个答案:

答案 0 :(得分:0)

问题在于您的$db变量,请检查您的数据库初始化代码,它可能无法连接到数据库并且没有检查错误。

答案 1 :(得分:0)

对我来说看起来像AdoDB,我使用相同的。你忘了Databasesettings了吗?应该看起来像谎言:

$db = ADONewConnection("mysql"); // eg 'mysql' or 'postgres'
$db->Connect("host", "user", "password", "table");

答案 2 :(得分:0)

之前我遇到过这个问题,并通过修复我的表来修复它。