首頁 > 資料庫 > mysql教程 > 如何從 MySQLi LIKE 查詢中取得所有結果?

如何從 MySQLi LIKE 查詢中取得所有結果?

Mary-Kate Olsen
發布: 2025-01-20 06:02:09
原創
636 人瀏覽過

How to Fetch All Results from a MySQLi LIKE Query?

從 MySQLi LIKE 查詢中擷取多筆記錄

MySQLi 的 LIKE 查詢可以產生多個結果。 但是,標準 fetch() 方法僅檢索第一行。 本指南概述了獲取所有匹配記錄的幾種方法。

方法一:get_result()fetch_all()

這是首選方法。 get_result() 取得整個結果集,fetch_all() 有效地將其轉換為關聯數組:

<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>
登入後複製

方法 2:使用 fetch() 和循環的準備語句

此方法使用帶有 bind_result() 的準備好的語句,並使用 fetch() 進行迭代,直到沒有更多行可用:

<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()) {
  // Process each row ($id, $username)
}</code>
登入後複製

方法 3:execute_query()(PHP 8.2 及更高版本)

對於 PHP 8.2 及更高版本,execute_query() 提供了一個簡潔的替代方案:

<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>
登入後複製

有用的資源:

以上是如何從 MySQLi LIKE 查詢中取得所有結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板