Zobacz wyniki ankiety na temat zarobków programistów w Polsce. Czytaj więcej..
-1

Witajcie towarzysze myszki w informatycznym boju ;)

Wypadło mi z głowy w jaki sposób robiło się repeace w mysql.

Chodzi o "taki" UPDATE (SET WHERE) który w wypadku niepowodzenia (bo np nie ma rekordu) doda nowy ;)

$b=$dbh->prepare("REPLACE INTO xxx (klucz,obraz) VALUES (:hasz,:obraz)");
$b->bindParam(":hasz",$hasz);
$b->bindParam(":obraz",$out);
$b->execute();

Próbowałem ten kod, ale po przytrzymaniu f5, mam 50 wpisów ;) Czyli nie działa.

Sytuacja ma być taka.

User otwiera... system patrzy, nie ma takiego rekordu to dodaje nowy. Jeżeli taki rekord istnieje to zamienia wartość ;)

Było, to na pewno bez PDO, pamiętam bo dawno temu miałem tak funkcję przy systemie sesji. Nikt nie pieprzył się w SELECT id from xxx, i sprawdzanie if id!='' then update else insert new.

Pamiętam, bo zaskoczyło mnie to że tak można. Dawniej jak byłem młodszy sam tak robiłem.

SELECT

IF EXIST

UPDATE

ELSE

INSERT

I w PHP miałem 3 zapytania do serwera SQL. A potem okazało się że można to zrobić jednym.

Jeżeli ktoś by mi to przypomniał, to będę zobowiązany ;)

flag

2 Answers

1

Wydaje mi się, że chodzi bardziej o:

INSERT ... ON DUPLICATE KEY UPDATE

link|flag
2

http://dev.mysql.com/doc/refman/5.1/en/replace.html

link|flag

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.