$result = mysqli_query($conn,"SELECT * FROM Players");
if ($result !== FALSE) {
while($row = mysqli_fetch_array($result)) {
$result = mysqli_query($conn,"UPDATE Players SET Score='$score' WHERE ID='$id'");
}
}
這作品。也就是說,數據庫確實更新了,一切都很酷。PHP mysqli_fetch_array據推測得到一個布爾值
但它拋出一個警告:
警告:mysqli_fetch_array()預計參數1被mysqli_result, 布爾給予
如果你搜索周圍的解釋是,查詢失敗 - 因此,它正在返回FALSE
,所以您會收到警告。
......但這對我來說沒有意義。查詢不是失敗。當我運行這個腳本時,我的數據庫更新得很好。此外,還有一個條件檢查,如果結果是之前使用mysqli_fetch_array
之前的布爾值,所以從技術上講,這個警告不應該發生在第一位。
無論如何,問題必須與$result
。讓我們做:
echo gettype($result);
導致
「對象」
嗯,這解釋了爲什麼是它傳遞的條件。然而,這仍然不能解釋爲什麼mysqli_fetch_array
堅持這是一個布爾值(因爲它不是)。
那麼問題是什麼呢?
使用PHP版本5.3.24和5.4.19進行測試。
您使用UPDATE查詢重置'$ result'。這不是結果集。更改變量名稱。 – Rimble 2014-08-27 08:25:02
根據UPDATE查詢的重要性,您不需要在結果集中記錄它,因爲沒有從更新查詢返回結果集。如果您需要知道查詢是否正常工作,請直接在if中查看if:(mysqli_query(...))。你的查詢究竟是試圖完成什麼? – Jhecht 2014-08-27 08:27:24