INSERT a UPDATE

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
Shaggy
Posty: 10
Rejestracja: 06 kwie 2014, 05:40:02
Strona na CBA.pl: battleship-dariusz-plichta.cba.pl
Płeć: Niewybrana
User Agent: Chrome Windows

INSERT a UPDATE

Post autor: Shaggy »

Kod: Zaznacz cały

DB::query("UPDATE rooms SET player2='".DB::esc($nick)."' WHERE room_id='".DB::esc($room_id)."'");
update działa jak tralala
a

Kod: Zaznacz cały

DB::query("INSERT INTO rooms (player2) VALUES ('".DB::esc($nick)."') WHERE  room_id='".DB::esc($room_id)."'"); 
a to nie.
Dlaczego? Jak w związku z tym nie pozwolić bazie nadpisać istniejących danych?
4zywioly
Posty: 528
Rejestracja: 26 kwie 2011, 16:33:42
Strona na CBA.pl: 4zywioly.c0.pl
Płeć: Niewybrana
User Agent: Chrome Windows 1366x768
Kontakt:

Re: INSERT a UPDATE

Post autor: 4zywioly »

Spróbuj tak:
DB::query("INSERT INTO rooms (`player2`) VALUES ('".DB::esc($nick)."') WHERE room_id='".DB::esc($room_id)."'");
rkd77
Admin CBA
Posty: 4170
Rejestracja: 24 maja 2009, 16:45:21
Płeć: Niewybrana
User Agent: Chrome Linux 1024x768

Re: INSERT a UPDATE

Post autor: rkd77 »

Shaggy, INSERT dodaje linijkę do tabeli. Tabela wygląda podobnie do arkusza kalkulacyjnego.
Przed INSERTem nic w danym wierszu nie ma. Składnia jest mniej więcej taka:
INSERT INTO rooms(player2, room_id) VALUES($nick, $room_id)
Zabezpieczeniem przed powtarzaniem się rekordów - wierszy jest PRIMARY KEY i indeksy typu UNIQUE.
Czy wiesz, że:
  • W Panelu CBA w sekcji "wsparcie" jest dedykowany system ticketów (obsługi technicznej)
  • Odpowiadamy na Forum oraz na adres mailowy obsluga(malpa)cba.pl
  • Jesteśmy również na Facebooku! Znajdź nas na facebook.com/hostingcba | cba.pl
W czym jeszcze możemy pomóc?
ODPOWIEDZ