Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] UPDATE na wielu wierszach w jednym zapytaniu
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


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?


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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)


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:33