> 백엔드 개발 > PHP 튜토리얼 > mysqli_multi_query로 \'엄격한 표준: mysqli_next_result() 오류 해결\'을 해결하는 방법은 무엇입니까?

mysqli_multi_query로 \'엄격한 표준: mysqli_next_result() 오류 해결\'을 해결하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-28 06:29:15
원래의
435명이 탐색했습니다.

How to Resolve the

엄격한 표준: mysqli_multi_query로 mysqli_next_result() 오류 해결

"엄격한 표준" 메시지를 피하려면 적절한 mysqli_multi_query 활용을 보장하는 것이 중요합니다. 세미콜론을 제거하면 문제가 제거될 수 있지만 핵심 문제가 해결되지는 않습니다.

오류 메시지를 해결하려면 다음 제안 사항을 고려하십시오.

mysqli_next_result() 이해

mysqli_next_result()는 결과 포인터를 다음에 의해 생성된 다음 결과 세트로 이동시킵니다. mysqli_multi_query(). 그러나 실행에는 초기 결과 집합이 필요하며 이는 모든 경우에 보장되지는 않습니다.

해결책

'do' 루프 내에 다음 확인 사항을 통합하세요.

do { if ($result = mysqli_store_result($db)) { // 결과 집합 처리 } } while (mysqli_more_results($db) && mysqli_next_result($db));

대체 구문: WHILE{} 루프

클래식 "IF(){DO{} WHILE}" 구문은 유효하며 단순화되고 읽기 쉬운 대안입니다. is:

while((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query = mysqli_multi_query($mysqli, implode(';', $queries))))

이 접근 방식은 루프 실행 및 결과 세트 확인 조건을 명확하게 정의합니다.

종합 스니펫

포괄적인 솔루션을 사용하려면 결과 집합 유무에 관계없이 쿼리를 처리하려면 다음 스니펫을 고려하세요.

Classic "IF(){DO{} WHILE}" 구문:

if (mysqli_multi_query($mysqli, implode(';', $queries))) {
    do {
        echo "<br><br>", key($queries), ": ", current($queries);  // display key:value @ pointer
        if ($result = mysqli_store_result($mysqli)) {   // if a result set
            while ($rows = mysqli_fetch_assoc($result)) {
                echo "<br>Col = {$rows["Col"]}";
            }
            mysqli_free_result($result);
        }
        echo "<br>Rows = ", mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
    } while (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
}
if ($mysqli_error = mysqli_error($mysqli)) {
    echo "<br><br>", key($queries), ": ", current($queries), "Syntax Error:<br>$mysqli_error";  // display array pointer key:value
}
로그인 후 복사

재창조된 휠 "WHILE{}" 구문:

while((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query = mysqli_multi_query($mysqli, implode(';', $queries)))) {
    echo "<br><br>", key($queries), ": ", current($queries);  // display array pointer key:value
    if ($result = mysqli_store_result($mysqli)) {
        while ($rows = mysqli_fetch_assoc($result)) {
            echo "<br>Col = {$rows["Col"]}";
        }
        mysqli_free_result($result);
    }
    echo "<br>Rows = ", mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
}
if ($mysqli_error = mysqli_error($mysqli)) {
    echo "<br><br>", key($queries), ": ", current($queries), "Syntax Error:<br>$mysqli_error";  // display array pointer key:value
}
로그인 후 복사

다음 스니펫은 결과 집합이 있거나 없는 쿼리를 효과적으로 처리하고 디버깅 목적을 위한 자세한 오류 처리 기능을 제공합니다.

위 내용은 mysqli_multi_query로 \'엄격한 표준: mysqli_next_result() 오류 해결\'을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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