php에서 mysqli_multi_query () 함수는 여러 SQL 쿼리 문을 실행할 수 있으며 Next_Result () 함수는 이러한 쿼리 결과를 하나씩 처리하는 데 도움이 될 수 있습니다. 일반적으로 동일한 요청에서 여러 쿼리를 전송할 수 있으며 MySQLI_Fetch_Assoc () , MySQLI_Fetch_row () 등과 같은 함수를 통해 각 쿼리의 결과 세트 에서 데이터를 얻을 수 있습니다.
mysqli_multi_query () 함수를 사용하기 전에 먼저 MySQL 데이터베이스 연결을 설정해야합니다. 다음은 데이터베이스에 연결하기위한 코드 예제입니다.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);
// 연결을 확인하십시오
if ($conn->connect_error) {
die("연결이 실패했습니다: " . $conn->connect_error);
}
?>
mysqli_multi_query () 함수를 사용하면 세미콜론 으로 분리 된 여러 SQL 쿼리 문을 한 번에 실행할 수 있습니다. 다음은 MySQLI_MULTI_QUERY ()를 사용하여 여러 쿼리를 수행하는 예입니다.
<?php
$sql = "SELECT * FROM users; SELECT * FROM orders;";
if ($conn->multi_query($sql)) {
do {
// 쿼리 결과를 얻으십시오
if ($result = $conn->store_result()) {
// 결과 세트에 반복하십시오
while ($row = $result->fetch_assoc()) {
echo "사용자ID: " . $row['user_id'] . " - 사용자名: " . $row['username'] . "<br>";
}
$result->free();
}
// 다음 결과 세트가있는 경우,부르다 next_result() 다음 결과 세트로 이동하십시오
} while ($conn->next_result());
} else {
echo "쿼리가 실패했습니다: " . $conn->error;
}
?>
위 코드에서 MySQLI_Multi_Query ()는 두 개의 쿼리를 실행합니다. 첫 번째 쿼리는 사용자 테이블에서 모든 사용자를 가져오고 두 번째 쿼리는 주문 테이블에서 모든 주문 데이터를 가져옵니다. do-while 루프는 각 쿼리 결과 세트가 처리되도록합니다.
MySQLI_MULTI_QUERY () 함수는 여러 쿼리가 실행될 때 여러 결과 세트를 반환합니다. 다음 _result () 함수의 함수는 다음 결과 세트로 이동하는 것입니다. next_result ()가 호출 될 때마다 다음 결과 세트가 있는지 확인합니다. 그렇다면 함수는 true , 그렇지 않으면 거짓을 반환합니다.
위의 코드에서는 do-while loop 및 next_result ()를 사용하여 결과가 더 이상 없을 때까지 모든 쿼리 결과 세트를 통과 할 수 있는지 확인합니다.
여러 쿼리를 실행하는 동안 오류가 발생하면 $ conn-> 오류를 통해 오류 메시지를 얻을 수 있습니다. 위의 코드에서는 쿼리가 실패 할 때 오류 정보를 간단히 출력하며 물론 실제 상황에 따라보다 복잡한 오류 처리를 수행 할 수도 있습니다.
모든 쿼리를 실행하고 모든 결과 세트를 처리 한 후 데이터베이스 연결을 닫아야합니다.
<?php
$conn->close();
?>
mysqli_multi_query () 및 next_result () 함수를 통해 PHP는 여러 SQL 쿼리의 결과 세트를 쉽게 처리 할 수 있습니다. 이 접근법은 여러 데이터 결과가 필요한 배치 쿼리 및 응용 프로그램을 수행하는 데 매우 유용합니다. 이 기사 가이 두 기능을 사용하여 다중 쿼리 결과의 처리를 구현하는 방법을 이해하는 데 도움이되기를 바랍니다.
더 많은 도움이 필요하면 공식 문서를 방문하여 https://gitbox.net/docs/mysql을 방문하여 자세한 내용은 보낼 수 있습니다.