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