」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 `mysqli_query()` 回傳「警告:mysqli_query() 期望參數 1 為 MySQLi,給定 null」?

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

發佈於2024-12-22
瀏覽:528

Why Does `mysqli_query()` Return

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

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

「警告:mysqli_query() 期望參數1 為MySQLi, null Give in"

錯誤原因

此錯誤表示執行 SQL 查詢的 mysqli_query() 函數需要 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 的穩健性和可靠性。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3