PHP MYSQL UPDATE falls vorhanden oder INSERT falls nicht?

Sie können die Anweisung "ON DUPLICATE KEY UPDATE" in Ihrer MySQL-Abfrage verwenden, wenn Sie die PHP-Bibliotheken "mysqli" oder "PDO" verwenden, um dies zu erreichen.

Beispielhaft verwendet mit der "mysqli" Bibliothek:

$sql = "INSERT INTO Tabelle (Spalte1, Spalte2, Spalte3) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE Spalte1 = VALUES(Spalte1), Spalte2 = VALUES(Spalte2), Spalte3 = VALUES(Spalte3)";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("sss", $spalte1_wert, $spalte2_wert, $spalte3_wert);
$stmt->execute();

Dies fügt eine neue Zeile hinzu, falls der in der Tabellenschema festgelegte Primärschlüssel oder einzigartiger Schlüssel nicht vorhanden ist, andernfalls wird die vorhandene Zeile mit den neuen Werten aktualisiert.

Sie können auch das REPLACE INTO Statement verwenden, das genau so funktioniert wie das INSERT INTO Statement, aber wenn es einen Duplikatschlüssel gibt, wird der alte gelöscht und der neue eingefügt.