我有一個網頁(讓我們稱之爲A.html)。 A.html有一些JavaScript將頁面切換到一個動態的PHP頁面(讓我們稱之爲B.php),使用一個簡單的document.location =「B.php」。 B.php根據它所看到的cookies運行一個mysql查詢,並返回一個基於mysqli-> affected_rows變量的結果。但是,每當頁面切換mysqli-> affected_rows等於0時,即使mysql表的確按照它應有的方式改變了。有趣的是,當我使用url欄(或刷新頁面)直接瀏覽B.php時,mysqli-> affected_rows是1,就像它應該是。緩存控制與mysqli-> affected_rows搞亂
查看wireshark,兩個GET請求之間唯一的區別是第二個(非javascript)有一個與緩存控制: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();
試過你的解決方案,沒有工作。與以前相同的結果,當JavaScript更改頁面聲稱沒有行更改(即使他們有),當我只是刷新它工作正常 – 2010-12-20 00:39:26