PHP
PHP mysqliの影響を受けた行は、正の整数を返す必要があるときに0を返します
サーチ…
前書き
このスクリプトはレポートデバイス(IoT)を処理するように設計されています。デバイスが以前に承認されていない場合(データベースのデバイステーブル内)、新しいデバイスをnew_devicesテーブルに追加します。私は更新クエリを実行し、affected_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