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

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

DDD
DDD原創
2024-12-18 17:12:11602瀏覽

Why Does `mysqli_query()` Return

理解「警告:mysqli_query() 期望參數1 為MySQLi,在中給出null」錯誤

在嘗試建立自訂CMS ,您遇到以下錯誤訊息:

「警告:mysqli_query()期望參數1 為 MySQLi,在「

錯誤原因

中給出的 null MySQLi 物件作為其第一個參數。但是,在 getPosts() 函數中,您傳遞的是 null 值而不是 MySQLi 物件。

解決方案

此問題的解決方案是確保$con MySQLi 物件在 getPosts() 函數的範圍內。在您的程式碼中, $con 是在全域範圍內定義的,但在函數內無法存取它。

將 MySQLi 物件作為依賴項傳遞

一種方法解決方法是將 MySQLi 物件作為依賴項傳遞給 getPosts() 函數。具體方法如下:

function getPosts(mysqli $con) {
    // etc
}

透過將 MySQLi 物件作為函數的參數,可以確保它在函數的作用域內可用,並且可以被 mysqli_query() 使用。

其他建議

除了解決範圍問題之外,請考慮實施以下建議:

  • 透過使用mysqli_report() 設定錯誤回報選項來處理錯誤和連線失敗。
  • 如果使用以下命令發生連線錯誤或查詢錯誤,則停止腳本執行mysqli::error().

這是如何實現這些的範例建議:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
$con=mysqli_connect("localhost","xxxx","xxxx","xxxxx");

if (!$con) {
    throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error());
}

getPosts($con);

透過實作這些建議,您可以確保自訂CMS 的穩健性和可靠性。

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

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