更新查询在mysql中引发错误

时间:2015-08-04 12:43:01

标签: php mysql codeigniter mysqli

我有一张名为' mostread'有两列open_id(int)和read(int)。现在的问题是,如果' open_id'已经出现在表格中,然后我需要更新“阅读”#39;对于每次点击其他我需要插入一个新行' open_id'从控制器检索并读取= 1。我在我的模型中使用下面的代码,它正确地插入了一个新行,但是第二次单击它会抛出一个错误,如下所示。

发生数据库错误

  

错误号:1064您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便使用正确的语法' read = read + 1 WHERE open_id =' 193''在第1行

     

更新mostread SET read = read + 1 WHERE open_id =' 193'

     

文件名:D:/Xampp/htdocs/opunletter/opunletter/application/models/Select.php

     

行号:52

             public function click($id)  
      {  
           $query = $this->db->query("SELECT * FROM mostread WHERE open_id='$id'");  

$count= $query->num_rows();
    if($count > 0) {
        $this->db->set('read', 'read+1', FALSE);
        $this->db->where('open_id', $id);
        $this->db->update('mostread');

        $data = array( 
   'open_id' => $id,
   'read' => '1'
);

$this->db->insert('mostread', $data); 
          return TRUE;
    }else{
         return FALSE;
     }
      }

1 个答案:

答案 0 :(得分:3)

尝试在read中添加反引号,将其保留为mysql中的keyword

$this->db->set('`read`', '`read` + 1', FALSE);