首頁 > 後端開發 > php教程 > 如何有效率地從 MySQL LIKE 查詢中取得所有結果?

如何有效率地從 MySQL LIKE 查詢中取得所有結果?

Linda Hamilton
發布: 2024-12-14 19:27:12
原創
396 人瀏覽過

How to Efficiently Fetch All Results from a MySQL LIKE Query?

使用 LIKE 和多個結果的 MySQL 查詢

在 MySQL 中,在查詢中使用 LIKE 運算子通常可以傳回多個結果。要檢索所有匹配結果,您需要使用正確的獲取方法。

取得所有結果

要從查詢中取得所有結果,您可以使用 get_result() 方法。此方法以 MySQLi_Result 物件的形式檢索完整的結果集。然後,您可以使用 fetch_all() 方法取得所有行資料的數組,如果您使用了 MYSQLI_ASSOC 常數,則透過欄位名稱關聯。

使用 get_result() 的範例程式碼:

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

使用 PHP 8.2的範例程式碼execute_query():

$sql = "SELECT id, username FROM users WHERE username LIKE ?";
$result = $db->execute_query($sql, ["%{$_POST['user']}%"]);
$data = $result->fetch_all(MYSQLI_ASSOC);
登入後複製

迭代取得

如果您喜歡迭代取得結果,可以使用 fetch() 方法。但是,您需要自己處理迭代,因為沒有內建的方法來循環所有結果。

使用bind_result()迭代獲取的範例程式碼:

$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}";
}
登入後複製

請記住始終參考 MySQLi 文件以獲取有關獲取的最新資訊結果。

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

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