首頁 >資料庫 >mysql教程 >如何使用 MySQLi 檢索多個 LIKE 查詢結果?

如何使用 MySQLi 檢索多個 LIKE 查詢結果?

DDD
DDD原創
2025-01-20 06:11:14590瀏覽

How to Retrieve Multiple LIKE Query Results Using MySQLi?

MySQLi 和多個 LIKE 查詢結果:綜合指南

使用 MySQLi 的 LIKE 運算子在檢索多個符合行時通常會帶來挑戰。本指南演示了避免此類問題的正確技術。

多行檢索的最佳化程式碼:

以下程式碼片段有效地從 users 表中檢索所有符合的記錄並將它們儲存在 $data 陣列中:

<code class="language-php">$param = "%" . $_POST['user'] . "%";
$stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();
$result = $stmt->get_result();
$data = $result->fetch_all(MYSQLI_ASSOC);</code>

這裡的關鍵是利用get_result()。此方法傳回一個 MySQLi 結果對象,從而實現整個結果集的無縫存取和處理。

現代方法(PHP 8.2 及更高版本):

對於 PHP 8.2 及更高版本,有更簡潔的方法:

<code class="language-php">$sql = "SELECT id, username FROM users WHERE username LIKE ?";
$result = $db->execute_query($sql, ["%" . $_POST['user'] . "%"]);
$data = $result->fetch_all(MYSQLI_ASSOC);</code>

這利用了 execute_query() 方法,大大簡化了流程。

傳統的Fetch和bind_result方法:

雖然效率較低,但使用 fetch()bind_result() 的傳統方法仍然是一種選擇:

<code class="language-php">$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}";
}</code>

請注意,這需要一個 while 迴圈來單獨迭代每一行。

基本資源:

有關詳細資訊和進一步探索,請參閱以下資源:

以上是如何使用 MySQLi 檢索多個 LIKE 查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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