從 MySQLi LIKE 查詢中擷取所有符合項目
在 PHP 中使用 MySQLi LIKE
查詢,特別是當需要多個結果時,需要仔細處理以確保檢索到所有符合的記錄。 以下演示了實現此目的的有效方法。
一個常見的錯誤是只取得第一個結果。 若要檢索所有符合的行,請採用以下改進的技術:
方法一:使用fetch_all()
(建議)
此方法簡潔高效,特別適用於 PHP 8.2 以上版本。 它將所有結果提取到關聯數組中:
<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); // Fetches all results</code>
對於 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>
方法 2:使用 bind_result()
和 while
循環的迭代方法
此方法單獨迭代每一行,印出 id
和 username
:
<code class="language-php">$stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}<br>"; // Added <br> for better output }</code>
如果您需要單獨處理每一行,而不是將它們全部儲存在陣列中,則此方法非常有用。
這兩種方法都基於官方 MySQLi 文檔,並為處理 LIKE
查詢的多個結果提供了強大的解決方案。 fetch_all()
方法通常因其簡單性和一次檢索所有結果的效率而受到青睞。
以上是如何有效率地檢索具有多個匹配項的 MySQLi LIKE 查詢的所有結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!