PHP
PHP mysqli betroffene Zeilen gibt 0 zurück, wenn eine positive Ganzzahl zurückgegeben werden soll
Suche…
Einführung
Dieses Skript ist für die Verarbeitung von Berichtsgeräten (IoT) konzipiert. Wenn ein Gerät noch nicht autorisiert ist (in der Gerätetabelle der Datenbank), füge ich das neue Gerät einer new_devices-Tabelle hinzu. Ich führe eine Aktualisierungsabfrage aus, und wenn betroffene_rows <1 zurückgibt, füge ich ein.
Wenn ich einen neuen Gerätebericht habe, gibt $ stmt-> betroffene_reihen zum ersten Mal 0 zurück, die nachfolgende Kommunikation gibt 1 zurück, dann 1, 0, 2, 2, 2, 3, 3, 3, 3, 3, 3 0, 4, 0, 0, 6, 6, 6 usw
Es ist, als ob die Update-Anweisung fehlschlägt. Warum?
$ Stmt-> betroffene_rows von PHP gibt periodisch 0 zurück, wenn eine positive ganze Zahl zurückgegeben werden soll
<?php
// if device exists, update timestamp
$stmt = $mysqli->prepare("UPDATE new_devices SET nd_timestamp=? WHERE nd_deviceid=?");
$stmt->bind_param('ss', $now, $device);
$stmt->execute();
//echo "Affected Rows: ".$stmt->affected_rows; // This line is where I am checking the status of the update query.
if ($stmt->affected_rows < 1){ // Because affected_rows sometimes returns 0, the insert code runs instead of being skipped. Now I have many duplicate entries.
$ins = $mysqli->prepare("INSERT INTO new_devices (nd_id,nd_deviceid,nd_timestamp) VALUES (nd_id,?,?)");
$ins -> bind_param("ss",$device,$now);
$ins -> execute();
$ins -> store_result();
$ins -> free_result();
}
?>
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow