sql >> Database >  >> RDS >> Mysql

Codeigniter 2 $this->db->join gebruikt met $this->db->update

Oké, ik ben erin geslaagd een "schone" oplossing te vinden, met behulp van codeigniter's join, set, enz. Dus wat cool is, is dat je alle voordelen van CI hebt door $this->db->join(), $this->db- te gebruiken>join(), etc. zoals escapen en aanhalingstekens toevoegen.

Dus doe eerst al je CI-dingen:

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

Vervolgens kunt u de query bouwen met behulp van de kant-en-klare, opgeschoonde en escape-query-elementen van 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);

Als iemand een betere oplossing heeft, zal ik die graag accepteren en in plaats daarvan gebruiken




  1. Mysql:Selecteer alle gegevens tussen twee datums

  2. Externe sleutel die verwijst naar een weergave in Oracle

  3. Hoe GraphQL en PostgreSQL te verbinden

  4. Django uniek samen beperking falen?