2014-10-22 153 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();