私は 1 つの Web ページを持っています (A.html と呼びましょう)。A.html には、単純なdocument.location="B.php"を使用して、ページを動的な php ページ (B.php と呼びましょう) に切り替える JavaScript があります。B.php は、認識した Cookie に基づいて mysql クエリを実行し、mysqli->affected_rows 変数に基づいて結果を返します。ただし、mysql テーブルが想定どおりに変更されたとしても、ページが切り替わるたびに mysqli->affected_rows は 0 になります。興味深いことに、URL バーを使用して B.php に直接アクセスすると (またはページを更新すると)、mysqli->affected_rows は想定どおり 1 になります。
Wireshark を見ると、2 つの GET リクエストの唯一の違いは、2 つ目の (JavaScript 以外の) リクエストにCache-Control: max-age=0の行があることです。これが何かに影響を与える理由を誰かが知っていますか?また、これを修正できる方法があれば教えてください。
編集:コードはこちら
$req = $mysqli->prepare('update users set sts=NOW() where i=? and sid=? and sip=? and NOW()-sts <= '.$authentication_timeout.';');
if ($mysqli->error) {
log_mysql_error($mysqli);
die('Unexpected error:'.$mysqli->error);
}
$req->bind_param('sss',$uid,$sid,$_SERVER['REMOTE_ADDR']);
$req->execute();
print $mysqli->affected_rows;
$req->close();