更新查询在mysql中引发错误[重复]
Posted
技术标签:
【中文标题】更新查询在mysql中引发错误[重复]【英文标题】:update query throws error in mysql [duplicate] 【发布时间】:2015-10-26 21:07:28 【问题描述】:我有一个名为“mostread”的表,其中包含 2 列 open_id(int) 和 read(int)。现在的问题是,如果表中已经存在“open_id”,那么我需要为每次点击更新“读取”,否则我需要插入一个新行,其中包含从控制器检索到的“open_id”并读取 = 1。我在我的模型中使用下面的代码,它正确地插入了一个新行,但是我第二次单击它时会引发如下错误。
发生数据库错误
错误号:1064 您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,以在第 1 行的 'read = read+1 WHERE
open_id
= '193'' 附近使用正确的语法更新
mostread
SET read = read+1 WHEREopen_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;
【问题讨论】:
read
是保留字,用反引号括起来dev.mysql.com/doc/refman/5.5/en/keywords.html
【参考方案1】:
尝试在read
周围添加反引号,它是mysql 中保留的keyword
$this->db->set('`read`', '`read` + 1', FALSE);
【讨论】:
将其更改为 $this->db->set('reading', 'reading+1', FALSE);.. 但这会增加它 +2 。 2..4..6..8...10等以上是关于更新查询在mysql中引发错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
带有 TINYINT 变量的更新语句在 mySQL 中引发错误 [关闭]
无法运行查询给出 mySQL 错误 #1093 - 您无法在 FROM 子句中指定目标表“成员”进行更新 [重复]