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

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

Linda Hamilton
Linda Hamilton原創
2024-12-14 19:27:12397瀏覽

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中文網其他相關文章!

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