【发布时间】:2012-07-23 16:23:51
【问题描述】:
使用 Codeigniter (v1.7.2) Active Record 类查询 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 函数中的正则表达式检查以查找开头 [
【问题讨论】:
标签: sql-server codeigniter activerecord