Instruction de jointure CodeIgniter ActiveRecord supprimant '[' de la clause ON

Utilisation de la class d'logging active Codeigniter (v1.7.2) pour interroger une database MSSQL (DB externe, je ne contrôle pas les noms de table ou de champ)

Le code suivant:

$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); 

Produit la requête suivante (qui a une erreur de syntaxe)

 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 

Notez la clause JOIN, qui manque l'ouverture '[' sur le nom du champ

J'ai essayé d'utiliser des guillemets doubles, qui ont donné le même résultat.

Quelqu'un a des idées, est-ce un bug connu dans 1.7.2 (que je sais est vieux, travaillant à la mise à jour)?

Le problème de mise à jour est présent en 2.1.2 également

La réponse acceptée ci-dessous est également le correctif pour 2.1.2: changer la vérification de regex dans la fonction JOIN pour searchr l'ouverture [

    Le problème est dans le paramètre ON . Il n'existe pas de solution embeddede dans le framework (pas dans la version 2).

    Vous avez 2 options:

    1. Modifier le coeur de la bibliothèque active_record

    2. Ecrivez la requête dans une string complète avec des concaténations en utilisant $ this-> db-> query () ;