CodeIgniter ActiveRecord 连接语句从 ON 子句中删除 '['



使用Codeigniter(v1.7.2)活动记录类查询MSSQL数据库(外部数据库,我不控制表或字段名)

以下代码:

$this->db->select('[Key Field], MemberInfo.OtherField');
$this->db->limit(10);
$this->db->from('primaryTable');
$this->db->join('MemberInfo', '[Member Number] = Member_Number', 'left');
$this->db->where('[Member Number]  = 573');
$this->db->where('[Incident Date] BETWEEN '. $DateStart . ' AND ' . $DateEnd);

生成以下查询(存在语法错误)

SELECT  TOP 10 [Key Field], MemberInfo.OtherField
FROM primaryTable
LEFT JOIN MemberInfo ON Member Number] = Member_Number
WHERE [Member Number] = '573'
AND [Incident Date] BETWEEN 2012-01-01 AND 2012-07-19

注意JOIN子句,它在字段名上缺少开头的"["

我试着使用双引号,结果是一样的。

任何人都有想法,这是1.7.2中的一个已知错误吗(我知道它很旧,正在更新)?

更新2.1.2中也存在问题

下面接受的答案也是2.1.2的修复方法:更改JOIN函数中的regex检查,以查找打开的[

问题出在参数ON中。框架中不存在集成解决方案(版本2中没有)。

您有两个选项:

  1. 更改库的核心active_record

  2. 使用$this->db->query()在一个带有串联的完整链中编写查询;

最新更新