Willkommen in der Webstatt Zum Webstatt Blog und Stories
Rebel4s Rebel4s am 10.02.08 12:00

Ich hab folgende Abfrage:

IF (SELECT count(*) FROM `cache` WHERE `id` = '".$id."' AND `group` = '".$group."' GROUP BY `id`) = 1
THEN
UPDATE `cache`
SET `data` = '".$cacheData."', `lastmodified` = ".time()."
WHERE `id` = '".$id."' AND `group` = '".$group."'
ELSE
INSERT `cache` (id, data, group, lastmodified)
VALUES('".$id."', '".$cacheData."', '".$group."',".time().")


Aber da ist ein Syntaxfehler, nur ich finde ihn nicht.
Der Query soll, wenn bereits eine Zeile existiert mit der gleichen id und group die Zeile updaten, sonst eine neue erstellen.

netcup.de Warum gibt es hier Werbung?
Rebel4s Rebel4s am 10.02.08 14:05

Habs nun so gelöst:

Die Spalte id beinhaltet nun den $id.".".$group und ist unique, dadurch kann ich REPLACE INTO verwenden:

REPLACE INTO `cache` (`id`, `data`, `group`, `lastmodified`) VALUES('".$id.".".$group."', '".$cacheData."', '".$group."', ".time().")

danieL danieL am 10.02.08 16:14

Die Funktion von REPLACE INTO ist dann also bearbeiten von unique einträgen, sind diese nicht vorhanden wird ein neuer angelegt?

Rebel4s Rebel4s am 10.02.08 18:28

jo genau

Michael Michael am 11.02.08 12:39

Man muss allerdings anmerken, dass bei der Aktualisierung eines vorhandenen Eintrages auf jeden Fall eine neue ID vergeben wird

Insbesondere bei auf IDs basierenden Zuordnungen kann dies leider leicht zu Problemen führen.

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt