使用Codeigniter(v1.7.2)Active Record Class查询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);
生成以下Query(语法错误)
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函数中的正则表达式检查以查找开头[
答案 0 :(得分:2)
问题出在参数ON
中。框架中没有集成的解决方案(不是版本2)。
您有两个选择: