PHP
php mysqli getroffen rijen retourneert 0 wanneer het een positief geheel getal moet retourneren
Zoeken…
Invoering
Dit script is ontworpen om rapportage-apparaten (IoT) te verwerken, wanneer een apparaat niet eerder geautoriseerd is (in de apparaatentabel in de database), voeg ik het nieuwe apparaat toe aan een new_devices-tabel. Ik voer een updatevraag uit en als affect_rows <1 retourneert, voeg ik in.
Wanneer ik een nieuw apparaatrapport heb, retourneert de eerste keer dat $ stmt-> beïnvloede_rijen het 0, de daaropvolgende communicatie retourneert 1, dan 1, 0, 2, 2, 2, 0, 3, 3, 3, 3, 3, 3 , 0, 4, 0, 0, 6, 6, 6, enz
Het is alsof de update-instructie mislukt. Waarom?
PHP's $ stmt-> getroffen_rijen geven met tussenpozen 0 terug wanneer het een positief geheel getal zou moeten opleveren
<?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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow