Mysql
 sql >> Base de données >  >> RDS >> Mysql

Codeigniter 2 $this->db->join utilisé avec $this->db->update

Ok, j'ai réussi à trouver une solution "propre", en utilisant la jointure, l'ensemble, etc. de codeigniter.>join(), etc. comme échapper et ajouter des guillemets.

Alors faites d'abord tous vos trucs CI :

$this->db->join(..) // Set all your JOINs
$this->db->set(..) // Set your SET data
$this->db->where(..) // Set all your WHEREs

Ensuite, vous pouvez créer la requête à l'aide des éléments de requête prêts, nettoyés et échappés d'Active Record :

// JOIN
$sql = "UPDATE $this->baseTable ";
$sql .= implode(' ', $this->db->ar_join);

// SET
$sql .= ' SET';
$setArray = array();
foreach ($this->db->ar_set as $column=>$newValue)
    array_push($setArray, " $column = $newValue");
$sql .= implode(',', $setArray);

// WHERE
$sql .= ' WHERE '.implode(' ', $this->db->ar_where);

$this->db->query($sql);

Si quelqu'un a une meilleure solution, je l'accepterai avec plaisir et l'utiliserai à la place