我试图更新我的查询,但我偶然发现同样的错误一次又一次…
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);
,如果你不明白你的问题,就把结果贴出来。