Mysql
 sql >> база данни >  >> RDS >> Mysql

Codeigniter 2 $this->db->join, използван с $this->db->update

Добре, добре, успях да намеря "чисто" решение, използвайки join, set и т.н. на codeigniter. И така, страхотното е, че ще имате всички предимства на CI от използването на $this->db->join(), $this->db->join() и т.н. като екраниране и добавяне на кавички.

Затова първо направете всичките си CI неща:

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

След това можете да създадете заявката, като използвате готовите, изчистени и екранирани елементи на заявката на 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);

Ако някой има по-добро решение, с радост ще го приема и ще го използвам вместо него




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Now() срещу GetDate()

  2. Съхранените процедури на MySQL ги използват или не, за да ги използват

  3. PHP strtotime връща различна стойност на Mysql UNIX_TIMESTAMP

  4. Изявление Where:съответства на една дума (не на подниз)

  5. Множество обединявания в MySQL таблица