3

使用 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);

产生以下查询(有语法错误)

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 函数中的正则表达式检查以查找开口[

4

1 回答 1

2

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

您有 2 个选项:

  1. 更改库 active_record 的核心

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

于 2012-07-23T16:49:13.897 回答