首頁 >後端開發 >php教程 >為什麼 `mysql_fetch_array()` 顯示「期望參數 1 為資源」以及如何修復它?

為什麼 `mysql_fetch_array()` 顯示「期望參數 1 為資源」以及如何修復它?

Linda Hamilton
Linda Hamilton原創
2024-12-22 20:17:12560瀏覽

Why Does `mysql_fetch_array()` Show

理解「mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等等...期望參數 1 為資源」錯誤

當您遇到此錯誤時,表示資料庫檢索功能之一(例如,正在使用無效參數呼叫 mysql_fetch_array()、mysql_fetch_assoc() 等)。具體來說,該參數應該是代表資料庫結果集的資源,但它是一個布林值。

錯誤原因

此錯誤的根本原因錯誤通常是資料庫查詢失敗。當查詢失敗時,mysql_* 函數/方法傳回 false,這可能會被誤解為布林值。因此,當您隨後使用錯誤結果呼叫檢索函數時,會導致此錯誤。

修正錯誤

要解決此問題,您必須請按照以下步驟操作:

  1. 檢查查詢結果:驗證mysql_query() 呼叫透過檢查其結果不會傳回false。
  2. 處理查詢失敗:如果查詢失敗,則觸發錯誤或進行適當處理。
  3. 確保參數正確:將正確的結果資源傳遞給檢索函數,而不是失敗的布林值

範例

考慮以下程式碼:

$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");

if($result === FALSE) {
    trigger_error(mysql_error(), E_USER_ERROR);
}

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}

在這個範例中,我們先檢查mysql_query( )並在查詢失敗時觸發錯誤。然後,我們正確地將 $result 資源傳遞給 mysql_fetch_array() 函數。這可確保使用適當的參數,從而防止錯誤。

以上是為什麼 `mysql_fetch_array()` 顯示「期望參數 1 為資源」以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn