>데이터 베이스 >MySQL 튜토리얼 >MySQLi를 사용하여 여러 LIKE 쿼리 결과를 검색하는 방법은 무엇입니까?

MySQLi를 사용하여 여러 LIKE 쿼리 결과를 검색하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-20 06:11:14633검색

How to Retrieve Multiple LIKE Query Results Using MySQLi?

MySQLi 및 다중 LIKE 쿼리 결과: 종합 가이드

MySQLi의 LIKE 연산자를 사용하면 일치하는 여러 행을 검색할 때 종종 문제가 발생합니다. 이 가이드는 이러한 문제를 방지하는 올바른 기술을 보여줍니다.

다중 행 검색에 최적화된 코드:

다음 코드 조각은 users 테이블에서 일치하는 모든 레코드를 효율적으로 검색하여 $data 배열에 저장합니다.

<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>

여기서 핵심은 get_result()을 활용하는 것입니다. 이 메소드는 MySQLi 결과 객체를 반환하여 전체 결과 세트에 대한 원활한 액세스 및 처리를 가능하게 합니다.

최신 접근 방식(PHP 8.2 이상):

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>

execute_query() 방법을 활용하여 프로세스를 상당히 단순화합니다.

기존 Fetch 및 Bind_result 방법:

효율성은 떨어지지만 fetch()bind_result()를 사용하는 기존 접근 방식은 여전히 ​​옵션입니다.

<code class="language-php">$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}";
}</code>

각 행을 개별적으로 반복하려면 while 루프가 필요합니다.

필수 자원:

자세한 정보와 추가 탐색을 보려면 다음 리소스를 참조하세요.

위 내용은 MySQLi를 사용하여 여러 LIKE 쿼리 결과를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.