首頁 >資料庫 >mysql教程 >如何在 MySQLi 中使用 LIKE 正確取得多個搜尋結果?

如何在 MySQLi 中使用 LIKE 正確取得多個搜尋結果?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-20 06:17:131036瀏覽

How to Properly Fetch Multiple Search Results Using LIKE in MySQLi?

利用MySQLi的LIKE語句有效率地取得多個搜尋結果

本文探討如何使用MySQLi從LIKE查詢中取得多個結果。

問題中提供的原始程式碼嘗試取得單行結果,但這不適用於可能傳回多行的場景。要正確取得所有結果,可以使用以下方法:

<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>

或者,從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>

如果您喜歡傳統的fetchbind_result語法,可以使用以下程式碼:

<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();

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

這些更新後的程式碼片段確保從資料庫檢索所有符合的行,讓您可以根據需要存取資料。

以上是如何在 MySQLi 中使用 LIKE 正確取得多個搜尋結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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