在我的数据库中,我有这个:
<p>Evento de Natal <img alt="" src="http://2.bp.blogspot.com/-kGiurC1ZAYY/TtxsnlfGfOI/AAAAAAAAAZA/A_QbRtqNnJU/s1600/40arvoresnatalmagiagifs.gif" style="float:right; height:199px; width:200px" /></p>
当我在DB中插入此代码时工作正常。 但是当我尝试使用具有更新功能的相同代码更新数据库时,会出现以下错误:http://i.imgur.com/W89z9Hl.png
建议不要直接在数据库中插入HTML?我怎么做? 以下是我要插入和更新的功能。
public function insertNew($data) {
$this->db->insert('noticias', $data);
redirect(site_url('/') . 'admin/');
}
public function updateNew($id, $title, $noticia, $event) { $this->db->query('UPDATE noticias SET title="' . $title . '" , noticia="' . $noticia . '", event="' . $event . '" WHERE id= "' . $id . '"'); redirect(site_url('/') . 'admin/all_news'); }
答案 0 :(得分:1)
似乎$ this-&gt; db-&gt; insert方法执行正确的字符串转义,而您作为$ this-&gt; db-&gt;查询的参数传递的原始查询则没有。
您确定$ this-&gt; db不包含更新或替换方法吗?如果没有,您应该添加它们。您可以将其基于当前的插入方法,并根据需要进行修改。
答案 1 :(得分:1)
你需要逃避报价。但是如果你使用codeigniter的内置insert
函数,为什么不使用它的update
函数:
public function updateNew($id, $title, $noticia, $event) {
$data = array(
'title' => $title,
'noticia' => $noticia,
'event' => $event
);
$this->db->where('id', $id);
$this->db->update('noticias', $data);
redirect(site_url('/') . 'admin/all_news');
}
我很确定当它与insert函数一起使用时,codeigniter也会在更新时为你进行转义。