利用MySQLi的LIKE語句有效率地取得多個搜尋結果
本文探討如何使用MySQLi從LIKE查詢中取得多個結果。
問題中提供的原始程式碼嘗試取得單行結果,但這不適用於可能傳回多行的場景。要正確取得所有結果,可以使用以下方法:
<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);</code>
或者,從PHP 8.2開始,可以使用以下更簡潔的程式碼:
<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>
如果您喜歡傳統的fetch
和bind_result
語法,可以使用以下程式碼:
<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(); $stmt->bind_result($id, $username); while ($stmt->fetch()) { echo "Id: {$id}, Username: {$username}"; }</code>
這些更新後的程式碼片段確保從資料庫檢索所有符合的行,讓您可以根據需要存取資料。
以上是如何在 MySQLi 中使用 LIKE 正確取得多個搜尋結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!