更新带有图像链接的查询

时间:2013-11-27 23:06:51

标签: php mysql codeigniter

在我的数据库中,我有这个:

<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');
}

2 个答案:

答案 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也会在更新时为你进行转义。