sql >> Databáze >  >> RDS >> Mysql

Codeigniter 2 $this->db->join použitý s $this->db->update

Dobře, podařilo se mi najít "čisté" řešení pomocí codeigniter's join, set atd. Takže co je skvělé je, že budete mít všechny výhody CI z použití $this->db->join(), $this->db->join() atd. jako escapování a přidávání uvozovek.

Takže nejprve udělejte všechny své CI věci:

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

Poté můžete vytvořit dotaz pomocí připravených, vyčištěných a uvozených prvků dotazu 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);

Pokud má někdo lepší řešení, rád ho přijmu a použiji jej místo




  1. Provedení dynamického příkazu SQL do SYS_REFCURSOR

  2. Možnosti Sniffing, Embedding a RECOMPILE

  3. přirozené třídění mysql

  4. Chyba MySQL:Ověřovací plugin 'caching_sha2_password' nelze načíst