SQL/PHP: Zählen bei MySQL Insert-Or-Update

edit | delete

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
foprojekt
id = ext.paid,
ministerium
referateid = 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>
';