sql >> Databasteknik >  >> RDS >> Mysql

Codeigniter 2 $this->db->join används med $this->db->update

Okej, jag lyckades hitta en "ren" lösning, med hjälp av codeigniters join, set, etc. Så det som är coolt är att du kommer att ha alla CI:s fördelar med att använda $this->db->join(), $this->db->join(), etc. som att fly och lägga till citattecken.

Så gör först alla dina CI-grejer:

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

Sedan kan du bygga frågan med hjälp av Active Records färdiga, rensade och undanröjda frågeelement:

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

Om någon har en bättre lösning tar jag gärna emot den och använder den istället




  1. Django 500 internt serverfel - felaktigt konfigurerad:Fel vid laddning av MySQLdb-modul:

  2. Ändra MYSQL-datumformat

  3. Effektivt tillvägagångssätt för att fylla temptabellen

  4. Hur bearbetar man distribuerad transaktion inom postgresql?