En simpel løsning ville være to forespørgsler.
Kør først en SELECT-forespørgsel for at kontrollere, om rækken findes ved hjælp af mysqli_num_rows().
Så, hvis rækken eksisterer, kan du køre UPDATE-forespørgslen og bruge mysqli_affected_rows().
[EDIT]
...Jeg vil foreslå et potentielt alternativ til alle, der søger et enkelt opkald. Jeg ved ikke, om du er interesseret i at lave nogen INDSÆT eller rene OPDATERINGER. Nedenfor er lidt stof til eftertanke:
Fra den øverste kommentar @ http://php.net/manual/en/ mysqli.affected-rows.php :
På "INSERT INTO ON DUPLICATE KEY UPDATE"-forespørgsler, selvom man kan forvente, at affected_rows kun returnerer 0 eller 1 pr. række ved vellykkede forespørgsler, kan det faktisk returnere 2.
Fra Mysql manual:"Med ON DUPLICATE KEY UPDATE er den berørte rækkeværdi pr. række 1, hvis rækken er indsat som en ny række og 2, hvis en eksisterende række er opdateret."
Se:http://dev.mysql.com /doc/refman/5.0/da/insert-on-duplicate.html
Her er summen pr. række :
+0:en række blev ikke opdateret eller indsat (sandsynligvis fordi rækken allerede eksisterede, men ingen feltværdier blev faktisk ændret under OPDATERING)
+1:en række blev indsat
+2:en række blev opdateret
Kan du få det til at passe til dine behov?