sql >> Database teknologi >  >> RDS >> Mysql

Codeigniter 2 $this->db->join brugt med $this->db->update

Okay, det lykkedes mig at finde en "ren" løsning, ved hjælp af codeigniters join, set osv. Så det fede er, at du vil have alle CI's fordele ved at bruge $this->db->join(), $this->db->join() osv. som at undslippe og tilføje anførselstegn.

Så gør først alle dine CI-ting:

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

Derefter kan du bygge forespørgslen ved hjælp af Active Records klar, rensede og escapede forespørgselselementer:

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

Hvis nogen har en bedre løsning, vil jeg gerne tage imod den og bruge den i stedet




  1. MYSQL PHP-opdateringsdata for hver række

  2. SÆT FMTONLY TIL i Oracle-forespørgsler

  3. kan ikke gemme flere borde i cakephp

  4. Problemer med at vise japanske tegn ved hjælp af PHP og MySQL