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

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

DDD
發布: 2025-01-20 06:11:14
原創
651 人瀏覽過

How to Retrieve Multiple LIKE Query Results Using MySQLi?

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

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

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

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

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

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

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

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

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

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

傳統的Fetch和bind_result方法:

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

$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}";
}
登入後複製

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

基本資源:

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

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

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