mmofacts.com

MySQL INSTERT INTO oder UPDATE

gepostet vor 17 Jahre, 1 Monat von Fornax
Hi!
Ich verwende aktuell folgende Abfragen, und möchte diese in eine SQL-Anweisung packen. Geht das?
$sql = 'SELECT COUNT(*) AS count FROM seiten WHERE seid="'.$eid.'" AND ssubid="0"';

$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
$count = intval($row['count']);
mysql_free_result($res);
if($count == 0){
$sql = 'INSERT INTO seiten (seid, ssubid, stext) VALUES ("'.$eid.'", "0", "'.$content.'")';
mysql_query($sql);
}
else{
$sql = 'UPDATE seiten SET stext="'.$content.'" WHERE seid="'.$eid.'" AND ssubid="0"';
mysql_query($sql);
}
Mir schwebt irgendeine Verknüpfung mit if (not exists) vor, jedoch habe ich noch nie damit gearbeitet, und bevor ich mir unnötig Mühe mache, wüsste ich gerne von euch, ob das überhaupt geht.
PS: Verwende MySQL Community 5.0.X
X=>22, je nach Rechner
gepostet vor 17 Jahre, 1 Monat von Elliot
dev.mysql.com/doc/refman/5.0/en/replace.html
"REPLACE INTO" könnte eine Alternative sein
ob es sinnvoll ist musst du selbst entscheiden, ich habe deinen Quellcode nur überflogen.
Bei diesem Vorgehen wir der bestehende Eintrag gelöscht und anschließend neu geschrieben. Aber wenn ich das richtig sehe ist das bei dir ja durchaus möglich.
gepostet vor 17 Jahre, 1 Monat von Fornax
@Nuky: Nein, das hatte ich schon gefunden, macht aber nicht das, was ich will. Es fügt eine neue Zeile ein, und ändert alle anderen mit dem gleichem Key.
@Elliot: Danke, das entspricht dem, was ich gesucht habe. Manchmal sieht man den Wald vor lauter Bäumen nicht

Auf diese Diskussion antworten