Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Codeigniter 2 $this->db->join używane z $this->db->update

Ok, udało mi się znaleźć "czyste" rozwiązanie, używając join, set itp. Co jest fajne, że będziesz miał wszystkie zalety CI z używania $this->db->join(), $this->db->join(), itp. jak wymykanie się i dodawanie cudzysłowów.

Więc najpierw wykonaj wszystkie swoje rzeczy związane z CI:

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

Następnie możesz zbudować zapytanie, używając gotowych, oczyszczonych i zmienionych elementów zapytania 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);

Jeśli ktoś ma lepsze rozwiązanie, chętnie je zaakceptuję i użyję




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego ten rodzaj w Solr nie działa?

  2. filtrowanie kryteriów hibernacji na zbiorze wartości wyliczanych

  3. Laravel - Paginate Rekordy losowe

  4. Replikacja MySQL jest dwukierunkowa

  5. Jak zaktualizować wszystkie daty w tabeli