> 백엔드 개발 > PHP 튜토리얼 > PHP/MySQL을 사용하여 단일 결과 집합에서 여러 SQL 쿼리를 실행하는 방법은 무엇입니까?

PHP/MySQL을 사용하여 단일 결과 집합에서 여러 SQL 쿼리를 실행하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-11 15:37:03
원래의
605명이 탐색했습니다.

How to Execute Multiple SQL Queries in a Single Result Set with PHP/MySQL?

PHP/MySQL에서 여러 쿼리 실행

질문:

여러 쿼리를 어떻게 결합할 수 있나요? MySQL을 사용하여 PHP의 단일 결과 집합에 대한 SQL 쿼리를 사용하시겠습니까?

답변:

MySQL을 사용하여 PHP에서 여러 개의 연결된 쿼리를 실행하려면 다음 단계를 따르세요.

  1. SQL 문 만들기:
    개별 SQL 쿼리를 세미콜론(;)으로 구분된 단일 문자열로 연결합니다. 마지막 쿼리를 제외하고 각 쿼리 끝에 두 개의 세미콜론이 있는지 확인하세요.
  2. 데이터베이스에 연결:
    mysqli_connect 함수를 사용하여 데이터베이스 연결을 설정하세요.
  3. 쿼리 준비:
    mysqli_prepare 함수를 사용하여 다중 쿼리 문을 준비합니다.
$query = "SQL STATEMENT 1;;SQL STATEMENT 2;;SQL STATEMENT 3";
로그인 후 복사
  1. 쿼리 실행:
    mysqli_multi_query 함수를 사용하여 준비된 명령문을 실행합니다.
if (mysqli_multi_query($link, $query)) {
    do {
        // Store and process results
    } while (mysqli_next_result($link));
}
로그인 후 복사
  1. 결과 가져오기:
    쿼리를 실행한 후 mysqli_fetch_array를 사용하여 결과를 가져옵니다.

예:

$link = mysqli_connect("server", "user", "password", "database");

$query = "CREATE VIEW current_rankings AS SELECT * FROM main_table WHERE date = X;;
CREATE VIEW previous_rankings AS SELECT rank FROM main_table WHERE date = date_sub('X', INTERVAL 1 MONTH);;
CREATE VIEW final_output AS SELECT current_rankings.player, current_rankings.rank as current_rank LEFT JOIN previous_rankings.rank as prev_rank
             ON (current_rankings.player = previous_rankings.player);;
SELECT *, @rank_change = prev_rank - current_rank as rank_change from final_output";

if (mysqli_multi_query($link, $query)) {
    do {
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_array($result)) {
                // Process results
            }
            mysqli_free_result($result);
        }
    } while (mysqli_next_result($link));
}
로그인 후 복사

대체 접근 방식:

또는 다음을 실행할 수 있습니다. 각 쿼리를 별도로 수행하고 결과를 하나씩 처리합니다. 쿼리가 상호 의존적이지 않은 경우 이 접근 방식을 권장합니다.

$query1 = "Create temporary table A select c1 from t1";
$result1 = mysqli_query($link, $query1);

$query2 = "select c1 from A";
$result2 = mysqli_query($link, $query2);

while($row = mysqli_fetch_array($result2)) {
    // Process results
}
로그인 후 복사

위 내용은 PHP/MySQL을 사용하여 단일 결과 집합에서 여러 SQL 쿼리를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿