codeigniter离开连接而没有包装字符

时间:2015-05-12 07:51:00

标签: mysql codeigniter between

我在Codeigniter中生成查询时遇到问题。问题是

$this->db->select('user.*')
    ->join('user_group', 'user.group_id BETWEEN user_group.start_range AND user_group.end_range', 'left');

此代码生成以下查询:

SELECT `user`.* FROM (`user`) LEFT JOIN `user_group` ON `user`.`group_id` `BETWEEN` user_group.start_range AND user_group.end_range

这里,mysql无法识别引号字符内的 BETWEEN ,如何在不包含引号字符的情况下生成查询。请给我任何建议。

我正在使用codeigniter 2.2.0

1 个答案:

答案 0 :(得分:0)

您需要覆盖$_reserved_identifiers类中的CI_DB_driver变量,如下所示

var $_reserved_identifiers  = array('*', 'BETWEEN'); // Identifiers that should NOT be escaped

(注意我不知道这会降低安全性)

https://github.com/bcit-ci/CodeIgniter/blob/2.2-stable/system/database/DB_driver.php#L67

另一个选项是使用>=<=

复制Between运算符