首頁 >後端開發 >php教程 >為什麼 `mysqli_query()` 回傳「期望參數 1 為 mysqli,給定 null」?

為什麼 `mysqli_query()` 回傳「期望參數 1 為 mysqli,給定 null」?

Linda Hamilton
Linda Hamilton原創
2024-12-15 00:58:17347瀏覽

Why Does `mysqli_query()` Return

警告:mysqli_query() 期望參數1 為mysqli,給定null

嘗試使用mysqli_query 執行查詢時會出現此錯誤( ),但連接物件的參數不是有效的MySQLi 物件。 mysqli_query() 函數期望第一個參數是 mysqli 類別的實例。

在提供的程式碼片段中,錯誤可能是由於以下原因引起的:

作用域問題

在全域作用域中聲明的mysqli 連線物件$con 在getPosts() 函數。這會導致 null 值作為第一個參數傳遞給 mysqli_query(),從而導致錯誤。

解決方案:

要解決此問題,您可以明確將連接物件作為參數傳遞給 getPosts() 函數。以下是修改後的程式碼:

function getPosts(mysqli $con) {
    $query = mysqli_query($con, "SELECT * FROM Blog");
    // ... Rest of the code remains the same
}

現在,當您呼叫 getPosts() 函數時,請務必將連線物件作為參數傳遞。

此外,最好啟用錯誤回報並優雅地處理資料庫連線問題。這是一個範例:

// Enable error reporting
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// Establish database connection
$con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx");

// Check connection status
if (!$con) {
    throw new Exception('Failed to connect to MySQL: ' . mysqli_connect_error());
}

// Call the getPosts() function with the connection object
getPosts($con);

以上是為什麼 `mysqli_query()` 回傳「期望參數 1 為 mysqli,給定 null」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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