PHP
php mysqli affected rows возвращает 0, когда он должен возвращать положительное целое число
Поиск…
Вступление
Этот скрипт предназначен для обработки устройств отчетности (IoT), когда устройство не авторизовано ранее (в таблице устройств в базе данных), я добавляю новое устройство в таблицу new_devices. Я запускаю запрос на обновление, и если action_rows возвращает <1, я вставляю.
Когда у меня есть новый отчет о устройстве, первый раз, когда $ stmt-> affected_rows запускает, он возвращает 0, последующие сообщения возвращают 1, затем 1, 0, 2, 2, 2, 0, 3, 3, 3, 3, 3, 3 , 0, 4, 0, 0, 6, 6, 6 и т. Д.
Как будто инструкция обновления не работает. Зачем?
PHP $ stmt-> affected_rows прерывно возвращается 0, когда он должен возвращать положительное целое число
<?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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow