MySQLi LIKE 쿼리에서 여러 레코드 검색
MySQLi의 LIKE
쿼리는 여러 결과를 생성할 수 있습니다. 그러나 표준 fetch()
메서드는 첫 번째 행만 검색합니다. 이 가이드에서는 일치하는 모든 기록을 가져오는 여러 가지 방법을 설명합니다.
방법 1: get_result()
및 fetch_all()
이것이 선호되는 방법입니다. get_result()
은 전체 결과 집합을 가져오고 fetch_all()
는 이를 연관 배열로 효율적으로 변환합니다.
<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>
방법 2: fetch()
및 반복문을 사용하여 준비된 문
이 접근 방식은 bind_result()
이 포함된 준비된 문을 활용하고 더 이상 사용할 수 있는 행이 없을 때까지 fetch()
을 사용하여 반복합니다.
<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()) { // Process each row ($id, $username) }</code>
방법 3: execute_query()
(PHP 8.2 이상)
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>
유용한 자료:
위 내용은 MySQLi LIKE 쿼리에서 모든 결과를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!