Oké, ik ben erin geslaagd een "schone" oplossing te vinden, met behulp van codeigniter's join, set, enz. Dus wat cool is, is dat je alle voordelen van CI hebt door $this->db->join(), $this->db- te gebruiken>join(), etc. zoals escapen en aanhalingstekens toevoegen.
Dus doe eerst al je CI-dingen:
$this->db->join(..) // Set all your JOINs
$this->db->set(..) // Set your SET data
$this->db->where(..) // Set all your WHEREs
Vervolgens kunt u de query bouwen met behulp van de kant-en-klare, opgeschoonde en escape-query-elementen van 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);
Als iemand een betere oplossing heeft, zal ik die graag accepteren en in plaats daarvan gebruiken