SQL/PHP: Zählen bei MySQL Insert-Or-Update
Autor: Varsamis Karamanidis (Macky)
eingetragen: Montag, 03. Mai 2021 um 15:42 Uhr (18/2021 Kalenderwoche)
geändert: Samstag, 17. Januar 2026 um 00:06 Uhr (3/2026 Kalenderwoche)
Keywords: Zahlen Insert DUPLICATE Update mysqli_affected_rows
Kategorien: DB: MySQL, PHP, DB: MariaDB,
Text:
INSERT INTO fpd.ffoprojektministeriumsreferatverkn
...
ON DUPLICATE KEY UPDATE
foprojektid = ext.paid,
ministeriumreferateid = ext.rmministeriumreferateid,
updatets = ext.qtupdate_zeitpunkt
Um die Zahlen für diese Query zu bekommen kann man untenstehende Syntax benutzen.
[s.auch stackoverflow.com: "MySQL bei doppelter Schlüsselaktualisierung + betroffener Zeilenanzahl"](https://stackoverflow.com/questions/23148574/mysql-on-duplicate-ke...
siehe auch PHP-Abfrage der Ergebnisse (Artikel 265)
Quellcode:
$anzahlMysqliAffectedRows = mysqli_affected_rows($link);
//courtesy of user at big lake dot com - php.net
list($rec, $dupes, $warns) = sscanf(mysqli_info($link),
"Records: %d Duplicates: %d Warnings: %d");
$inserts = $anzahlMysqliAffectedRows - ($dupes * 2);
$updates = ($anzahlMysqliAffectedRows - $inserts)/2;
$uebersprungen = $rec - ($inserts + $updates);
$gesamt = $rec;
$echoAusgabeSammler .= '
<h3>Ergebnis für ' . $gesamt . ' Verknüpfungen zum "federführenden BMEL-Referat":
Es wurden '.$inserts.' hinzugefügt und '.$updates.' geändert!
Bei '.$uebersprungen.' Datensätzen wurde nichts geändert!
</h3>
';