Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Codeigniter 2 $this->db->join usado com $this->db->update


Ok, eu consegui encontrar uma solução "limpa", usando o join, set, etc. do codeigniter.>join(), etc. como escapar e adicionar aspas.

Então, primeiro, faça todas as suas coisas de CI:
$this->db->join(..) // Set all your JOINs
$this->db->set(..) // Set your SET data
$this->db->where(..) // Set all your WHEREs

Em seguida, você pode criar a consulta usando os elementos de consulta prontos, limpos e com escape do 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);

Se alguém tiver uma solução melhor, aceitarei com prazer e a usarei