我尝试使用CodeIgniter的数据库类来减少列的值。目前我正在这样做:
public function deduct_limit($bytes, $ip_address) {
$this->db->where('ip_address', $ip_address);
$this->db->set('limit', 'limit - ' . $bytes, FALSE);
$this->db->update('limits');
}
但是,CodeIgniter会抛出此错误消息:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近' limit - 418266480 WHERE
ip_address
=' 127.0.0.1''在第1行
UPDATE `limits`
SET `limit` = limit - 418266480
WHERE `ip_address` = '127.0.0.1'
据我所知,SQL是正确的,我已经谷歌了,并且看了SO,他们都遵循这种语法。除了+1
或-1
之外的其他任何内容,我都不能使用它吗?
答案 0 :(得分:2)
您需要使用反引号{/ 1>来reserved words in MySQL转义limit
UPDATE limits
SET `limit` = `limit` - 418266480
WHERE ip_address = '127.0.0.1'
答案 1 :(得分:2)
这可能会对你有所帮助
$this->db->set('limit', 'limit - ' . (int) $bytes, FALSE);