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

,误差插入MySQL查询在笨

错误编号:1064

您的SQL语法错误; “从喜欢其中SFID = 11等)作为α总计”在行2

SELECT SUM(像)作为α总计从等,其中SFID检查 对应于你的MySQL服务器版本的正确的语法使用 附近的手动= 11

文件名:C:\瓦帕\ WWW \别\ SYSTEM \数据库\ DB_driver.php

行号:330

'喜欢' 在总和(像)是共lumn名字和“像”后“从”是表名 预先感谢您

+2

欢迎来到Stack Overflow。您可以使用[代码示例'{}'](http://i.stack.imgur.com/VYd26.png)工具栏按钮格式化源代码 - 这次我已经为您完成了。 – 2014-10-22 07:42:09

+0

你选择了我的答案,然后你改变了主意。我的毕竟是第一次看到时间戳。哦,你可以做什么。 – 2014-10-22 07:59:08

回答

1

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

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

like是一个MySQL的保留字

需要被包裹在反引号。

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

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

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

如果重命名它们不是一个选项,然后修改代码改为这样:

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

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

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();