在非对象上调用成员函数escape()


Fatal error: Call to a member function escape() on a non-object in

我试图更新我的查询,但我偶然发现同样的错误一次又一次…

Fatal error: Call to a member function escape() on a non-object in ...

这是我的功能

    //update activity
    public function updateActivity($db, $id) {
    $sql    = "UPDATE tblLeidingAgenda SET
    datum       = '".$db->escape($this->datum)."',
    uur         = '".$db->escape($this->uur)."',
    titel       = '".$db->escape($this->titel)."',
    uitleg      = '".$db->escape($this->uitleg)."',
    link        = '".$db->escape($this->link)."',
    aanwezig    = '".$db->escape($this->aanwezig)."',
    auteur      = '".$db->escape($this->auteur)."'
    WHERE id    = '".$id."'";
    return $db->insert($sql);
}

这是我的代码:

if (empty($_POST['up_datum']) || empty($_POST['up_uur']) || empty($_POST['up_titel']) || empty($_POST['up_uitleg'])) {
        $error = 'no input';
    } else {
        $datecorrect=date('Y-m-d',strtotime($_POST['up_datum']));
        $agenda = new Leidingsactiviteit();
        $agenda->datum          = $datecorrect;
        $agenda->uur            = $_POST['up_uur'];
        $agenda->titel          = $_POST['up_titel'];
        $agenda->uitleg         = $_POST['up_uitleg'];
        $agenda->auteur         = $_SESSION['user']['naam'];
        if ($agenda->updateActivity($_DB,$_POST['id'])) {
            $feedback = 'ok';
            $bericht = 'test';
            mail('me@gmail.com', 'Update: '.$agenda->titel, $bericht);
        } 
        else {
            $feedback = 'not ok';
         }
    }

EDIT $_DB声明…

 define('MYSQL_HOST',  '***');
 define('MYSQL_DB',    '***');
 define('MYSQL_USER',  '***');
 define('MYSQL_PASSW', '**');
 // Initialize (global vars) 
 $_DB = new DBConnection(MYSQL_HOST, MYSQL_DB, MYSQL_USER, MYSQL_PASSW);

变量$_DB声明在哪里?从你发布的内容来看,它从未被声明过,所以我不知道对象内部是什么(如果它甚至是一个对象开始)。

if ($agenda->updateActivity($_DB,$_POST['id']))之前试试var_dump($_DB);,如果你不明白你的问题,就把结果贴出来。