2

我正在尝试使用 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 服务器版本相对应的手册,以ip_address在第 1 行的 'limit - 418266480 WHERE = '127.0.0.1''附近使用正确的语法

UPDATE `limits` 
    SET `limit` = limit - 418266480 
WHERE `ip_address` = '127.0.0.1'

据我所知,SQL 是正确的,我已经用谷歌搜索了它并查看了 SO,它们都遵循该语法。我不能将它与除+1or以外的任何东西一起使用-1吗?

4

1 回答 1

2

您需要像反引号一样转义MySQL 中的保留字limit

UPDATE limits
SET `limit` = `limit` - 418266480
WHERE ip_address = '127.0.0.1'
于 2013-07-31T21:00:14.953 回答