Jednoduchým řešením by byly dva dotazy.
Nejprve spusťte dotaz SELECT a pomocí mysqli_num_rows() zkontrolujte, zda řádek existuje.
Pak, pokud řádek existuje, můžete spustit dotaz UPDATE a použít mysqli_affected_rows().
[UPRAVIT]
...navrhnu potenciální alternativu pro každého, kdo hledá jediný hovor. Nevím, jestli máte zájem dělat nějaké INSERTy, nebo čistě UPDATE. Níže je několik podnětů k zamyšlení:
Z horního komentáře @ http://php.net/manual/en/ mysqli.affected-rows.php :
U dotazů „INSERT INTO ON DUPLICATE KEY UPDATE“ lze sice očekávat, že ovlivněné_řádky vrátí pouze 0 nebo 1 na řádek při úspěšných dotazech, ve skutečnosti může vrátit 2.
Z manuálu Mysql:"S ON DUPLICATE KEY UPDATE je hodnota ovlivněných řádků na řádek 1, pokud je řádek vložen jako nový řádek, a 2, pokud je aktualizován existující řádek."
Viz:http://dev.mysql.com /doc/refman/5.0/en/insert-on-duplicate.html
Zde je rozpis součtů na řádek :
+0:řádek nebyl aktualizován nebo vložen (pravděpodobně proto, že řádek již existoval, ale během AKTUALIZACE nebyly ve skutečnosti změněny žádné hodnoty pole)
+1:byl vložen řádek
+2:řádek byl aktualizován
Dokážete to přizpůsobit svým potřebám?