Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] UPDATE na wielu wierszach w jednym zapytaniu
Forum PHP.pl > Forum > PHP
kiler129
Witajcie!
Krótko i na temat. Moja tabela z ustawieniami CMSu posiada 2 kolumny: name oraz value. Kombinuje jak zapisywać ustawienia które dostaje od strony użytkownika w postaci tablicy ["pageTitle"] => "testowa strona".
Najprościej tak:

  1. foreach($arr as $key => $val) {
  2. if(!$this->_dbObj->noReply("UPDATE `settings` SET `value` = :val WHERE `name` = :key LIMIT 1", array(":val" => array("data" => $val, "dataType" => PDO::PARAM_STR), ":key" => array("data" => $key, "dataType" => PDO::PARAM_STR))))$status=false;
  3. }


Ale to ma pewną wadę - powoduje ok 40 zapytań do SQLa czego chcę uniknąć. Czy da się wykonać update na wielu wierszach jednocześnie?
wookieb
Spróbuj użyć INSERT INTO wraz z ON DUPLICATE KEY UPDATE
Coś wtym stylu
  1. INSERT INTO tabela (id, name, value) VALUES (1, 2, 3), (3,4,5) ON DUPLICATE KEY UPDATE name=VALUES(name), value = VALUES(value)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.