Willkommen in der Webstatt
User-1 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?
User-1 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().")

User-2 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?

User-1 am 10.02.08 18:28

jo genau

User-3 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