3

Codeigniter (v1.7.2) Active Record Class を使用して MSSQL データベースにクエリを実行する (外部 DB、テーブルまたはフィールド名は制御しません)

次のコード:

$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 の既知のバグですか?

UPDATE の問題は 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 に答える