在codeigniter中插入mysql查询

时间:2014-10-22 07:35:03

标签: php mysql codeigniter

$query = $this->db->query('select
  sum(like) as atotal
from
  like
where
  sfid = '.$short);<br>
print_r($query);

,错误是

  

错误号码:1064

     

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   接近&#39;喜欢)如同sfid = 11&#39;在第2行

     

选择sum(like)作为atotal,例如sfid = 11

     

文件名:C:\ wamp \ www \ don \ system \ database \ DB_driver.php

     

行号:330

&#39;像&#39;总和(像)是列名和&#39;喜欢&#39;之后&#39;来自&#39;是表名 提前谢谢你

4 个答案:

答案 0 :(得分:5)

$data = array(
              "category_id"=>$this->input->post('category'),
              "name"=>$this->input->post('name'),
              "description"=>$this->input->post('descri')
              );

    $this->db->insert('measurement', $data);
    $inserted_id = $this->db->insert_id();

答案 1 :(得分:3)

like是MySQL保留字

需要用反引号包装。

要么这样做,要么将您的表/列重命名为其他内容。

不鼓励使用保留字。您可以使用它们,但需要特别注意。

  • 我建议您将表格重命名为likes,将您的专栏重命名为另一个字词。

如果重命名它们不是一个选项,那么请将您的代码修改为:

$query = $this->db->query('select 
  sum(`like`) as atotal 
from 
  `like` 
where 
  sfid = '.$short);
print_r($query);

答案 2 :(得分:1)

您不应在查询中使用 like 关键字。 它是特定于sql的单词,被视为特殊关键字。要解决此任务,您应该更改数据库表中的列名称或在反引号中包含like关键字:

$query = $this->db->query('select sum(`like`) as atotal from `like` where sfid = '.$short);

答案 3 :(得分:1)

你仍然可以使用它。只需使用`like` 而不是或更改表名。 backQuote有助于覆盖MySql关键字覆盖。