首頁 >後端開發 >php教程 >為什麼我的'mysqli_query()”函數收到空值而不是 MySQLi 連接物件?

為什麼我的'mysqli_query()”函數收到空值而不是 MySQLi 連接物件?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 00:26:10827瀏覽

Why Does My `mysqli_query()` Function Receive a Null Value Instead of a MySQLi Connection Object?

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

在您建立自訂CMS 的過程中,您可能遇到可怕的錯誤訊息:「警告:mysqli_query() 需要參數1為MySQLi,其中給出 null。

錯誤原因

該錯誤表明您的getPosts() 函數正在嘗試存取$con 變量,該變量儲存MySQLi 連接對象,但在該函數的範圍內無法訪問它。這是因為 $con 是在 getPosts() 函數之外定義的。

解決方案:將連接作為依賴項傳遞

要解決此問題,您需要傳遞連接物件作為 getPosts() 函數的依賴項。透過這樣做,該函數可以存取連接並執行必要的資料庫操作。

function getPosts(mysqli $con) {
    // Code to query the database using $con
}

防止進一步的錯誤

為了最大限度地減少潛在問題,請考慮使用以下內容處理連接錯誤並拋出異常的代碼:

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

getPosts($con);

其他提顯示

  • 直接使用mysqli物件:避免使用mysqli_query()並直接選取mysqli物件的方法,例如$con->query()。
  • 處理異常:記得要處理由mysqli 物件使用 try...catch 區塊來提供有意義的錯誤訊息。
  • 處理連線: 完成連線後,使用 $con->close 將其關閉() 方法釋放資源。

以上是為什麼我的'mysqli_query()”函數收到空值而不是 MySQLi 連接物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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