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

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

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

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 的穩健性和可靠性。

最新教學 更多>
  • 在 JavaScript 中使用 setTimeout 時如何保留「this」引用?
    在 JavaScript 中使用 setTimeout 時如何保留「this」引用?
    setTimeout 和JavaScript 中難以捉摸的「this」使用setTimeout 函數時,開發者經常會遇到後續呼叫方法遺失的問題他們的預期上下文,導致看似未定義的方法。這通常是由於丟失“this”引用引起的。 問題:考慮以下程式碼:test.prototype.method = fun...
    程式設計 發佈於2024-12-22
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2024-12-22
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-12-22
  • 為什麼要使用 SwingUtilities.invokeLater?
    為什麼要使用 SwingUtilities.invokeLater?
    SwingUtilities.invokeLater:仔細觀察在 Swing 程式設計領域,SwingUtilities.invokeLater 扮演至關重要的角色。這個方法到底是做什麼的,它跟在主執行緒直接執行程式碼有何不同? SwingUtilities.invokeLater,顧名思義,將給定...
    程式設計 發佈於2024-12-22
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-22
  • 如何在 Spring 中串流大型 MySQL 結果集以避免 OutOfMemoryError?
    如何在 Spring 中串流大型 MySQL 結果集以避免 OutOfMemoryError?
    使用MySQL 串流處理大型結果集在Spring 應用程式中處理大量MySQL 表時,當驅動程式試圖執行下列操作時,可能會出現OutOfMemoryException:將整個表載入到記憶體中。設定statement.setFetchSize(Integer.MIN_VALUE);可能還不夠,因為這僅...
    程式設計 發佈於2024-12-22
  • 在 SQL 中更新同一個表後,如何安全地更新觸發器內的表?
    在 SQL 中更新同一個表後,如何安全地更新觸發器內的表?
    更新同一個表後更新觸發器中的表在SQL 中,更新觸發器後更新表同一張表提出了一個潛在的問題。這是因為該表已針對更新操作鎖定,並且嘗試在作為相同交易的一部分執行的觸發器內存取該表可能會導致衝突。 要規避此限制,您可以更新透過使用 BEFORE 選項而不是 AFTER 來影響觸發器中的列。這允許您在原始...
    程式設計 發佈於2024-12-22
  • 使用PHP的DOMDocument擷取節點時如何保留HTML標籤?
    使用PHP的DOMDocument擷取節點時如何保留HTML標籤?
    使用DOMDocument 提取HTML 節點的問題簡介DOMDocument 是PHP 類,提供了一種便捷的解析方法以及操作HTML 文件。然而,當嘗試在提取內容時保留 HTML 標籤時,使用者可能會遇到困難。本文深入探討了 DOM 的基本概念,並提出了應對這項挑戰的解決方案。 理解 DOM 和節...
    程式設計 發佈於2024-12-22
  • 如何在 Python 類型提示中指定函數類型?
    如何在 Python 類型提示中指定函數類型?
    在類型提示中指定函數類型在Python中,類型提示用於提供有關變數和函數參數的預期類型的可選元資料。然而,將變數的類型提示指定為函數類型似乎不清楚。 解決方案儘管相關中缺少“typing.Function” PEP 483,您可以使用下列指令將變數的型別提示指定為函式型別"typing.C...
    程式設計 發佈於2024-12-22
  • 為什麼我在發送 URL 編碼的 POST 請求時收到 400 BAD REQUEST?
    為什麼我在發送 URL 編碼的 POST 請求時收到 400 BAD REQUEST?
    帶有URL 編碼負載的POST 請求當構造帶有URL 編碼資料的POST 請求時,經常會遇到400 BAD REQUEST 回應,表示伺服器無法理解負載。當有效負載提供不正確時,通常會出現此問題。 標準函式庫的 http.NewRequest(...) 方法期望將有效負載作為第三個參數提供,該參數應...
    程式設計 發佈於2024-12-22
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-22
  • 為什麼我不能直接從定義類別中呼叫內聯友元函數?
    為什麼我不能直接從定義類別中呼叫內聯友元函數?
    內聯友元函數的可見性範圍儘管在類別中定義了內聯友元函數,但它們的實際範圍超出了類別的邊界。 C 標準規定,內聯友元函數的名稱引用在最近的封閉命名空間範圍中聲明的函數。 但是,在該命名空間內提供匹配聲明之前,無法透過非限定或限定查找存取此聲明的函數。範圍。因此,從類別本身、封閉作用域或成員函數直接呼叫...
    程式設計 發佈於2024-12-22
  • ## [].forEach.call() 如何轉換 JavaScript 類別陣列結構?
    ## [].forEach.call() 如何轉換 JavaScript 類別陣列結構?
    JavaScript 中的陣列轉換:了解[].forEach.call()使用JavaScript 時,您可能會遇到使用下列程式碼片段[].forEach.call() 迭代元素列表。該技術允許使用數組函數擴展類似數組的結構,例如 NodeList。 空數組 [] 用於存取 forEach 函數,該...
    程式設計 發佈於2024-12-22
  • 如何使用 CSS 建立具有固定標題的可捲動表格?
    如何使用 CSS 建立具有固定標題的可捲動表格?
    如何使用 CSS 和固定標題製作可捲動表格在 Web 開發中,通常需要建立包含大量資料的表格需要捲動。然而,在滾動表格主體的同時保持固定的標題可能具有挑戰性。以下是實現此效果的方法:HTML 結構首先,我們必須確保 HTML 結構正確。我們有一個帶有捲軸的外部 div,一個包含表格的內部 div,表...
    程式設計 發佈於2024-12-22
  • 如何使用 JavaScript 和 Python 產生 RSA 金鑰
    如何使用 JavaScript 和 Python 產生 RSA 金鑰
    在当今的数字时代,确保敏感信息的安全至关重要。 RSA 是最广泛使用的加密技术之一,它通过允许安全通信和数据保护来帮助实现这一目标。如果您是想要学习如何生成 RSA 密钥对的初学者,本教程将指导您通过 JavaScript 和 Python 完成该过程。 什么是 RSA? RSA (...
    程式設計 發佈於2024-12-22

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

Copyright© 2022 湘ICP备2022001581号-3