Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Update wielu wierszy
imbabo
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.03.2011

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


Witam , mam pytanie.
Czy istnieje konstrukcja zapytania UPDATE , podobna do konstrukcji zapytania INSERT ?
Chodzi mi dokładnie o coś takiego:
  1. INSERT INTO TABLE
  2. (id1, kol1)
  3. VALUES
  4. (1,3),
  5. (2,4)

Czy jeżeli chce zrobić update wielu wierszy , każdy o innym id , to muszę za każdym razem wysyłać zapytanie do bazy o każdy zmieniany wiersz ?
Nie da się wysłać jednego dużego zapytania jak w konstrukcji INSERT ?
A może skorzystać z instrukcji INSERT ON DUPLICATE KEY UPDATE ?
Pytam ponieważ potrzebuje "zoptymalizować" ruch sieciowy i wysyłać jak najmniej pakietów. Lepiej wysłać jeden duży niż kilka małych.
Pozdrawiam i dziękuje za wszelaką pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Valdi_B
post
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 30
Dołączył: 19.02.2011
Skąd: Warszawa

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


Skoro takie aktualizacje chcesz robić często, to spróbuj innego chwytu:
1. PREPARE - przygotowujesz instrukcję (1 raz na początku).
W treści mogą być znaki "?" (placeholdery) - miejsca na podstawienie konkretnych wartości.
2. EXECUTE ... USING <lista wartości> - właściwe wykonanie.

Zysk polega na szybkości, bo PREPARE wykonujesz 1 raz, a potem taką instrukcję możesz wielokrotnie i szybko wykonać z podstawieniem konkretnych wartości.

Szczegóły doczytaj na stronie:
http://dev.mysql.com/doc/refman/5.1/en/sql...statements.html

To co powyżej - wykonujesz na poziomie SQL.
Możesz spróbować jeszcze innego wariantu:

W ramach biblioteki PDO są funkcje prepare i execute o podobnej funkcjonalności.
Zobacz na stronie:
http://pl.php.net/manual/pl/pdo.prepare.php

Wątpię jednak czy to będzie szybsze.
Poza tym pytanie - jaką biblioteką operujesz obecnie na bazie i czy chce Ci się zmieniać na PDO?

Na koniec uwaga do propozycji Przedmówcy:
W dokumentacji MySQLnie mogę się doszukać opisu zdania UPDATE FROM <tablica>.
Czy to na pewno chodzi w MySQL?

Ten post edytował Valdi_B 28.03.2011, 08:13:16
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 08:18