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

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

DDD
DDD원래의
2024-11-29 05:39:171031검색

How to Fix

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

문제:

mysqli_multi_query 사용( ) mysqli_next_result()와 관련된 "Strict Standards" 오류를 유발합니다.

해결책:

이 문제를 해결하려면 다음을 사용하십시오. 코드:

do{} while(mysqli_more_results($db) && mysqli_next_result($db));

설명:

Strict Standards 오류는 mysqli_next_result()를 사용해야 하는지 확인하기 위해 mysqli_more_results()를 호출해야 하기 때문에 발생합니다. 제공된 코드 조각은 다른 결과 세트가 있는 경우에만 mysqli_next_result()가 호출되도록 보장합니다.

고려 사항:

  • 제공된 예에서는 INSERT 쿼리만 결과 세트를 반환하지 않는 실행 중입니다. 따라서 루프가 실행되지 않고 오류가 발생하지 않습니다.
  • 쿼리에 SELECT 문이나 결과 집합을 반환하는 기타 작업이 포함된 경우 제공된 솔루션을 사용하면 오류 메시지가 나타나는 것을 방지할 수 있습니다.
  • 수정된 코드 조각은 do-while 루프를 사용합니다. 이는 사후 테스트이며 조건부 중단이나 종료가 필요하지 않습니다. loop.

개선 사항:

보다 강력한 접근 방식을 위해 다음 코드 조각을 고려하십시오.

if(mysqli_multi_query($db,$querystring)){
    do{
        $cumulative_rows+=mysqli_affected_rows($db);
    } while(mysqli_more_results($db) && mysqli_next_result($db));
}
if($error_mess=mysqli_error($db)){echo "Error: $error_mess";}
echo "Cumulative Affected Rows: $cumulative_rows";

이 코드 조각은 다음과 같습니다.

  • INSERT에서 영향을 받은 행 수를 계산합니다. UPDATE 또는 DELETE 쿼리.
  • 영향을 받은 누적 행을 표시합니다.
  • 오류를 확인하고 정보가 담긴 오류 메시지를 제공합니다.

추가 참고 사항:

mysqli_multi_query()에 익숙하지 않은 사용자를 위한 내용은 다음과 같습니다. 결과 집합 유무에 관계없이 쿼리를 처리하는 다목적 코드 조각:

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
}

이 코드 조각:

  • SELECT, INSERT, UPDATE 및 DELETE를 포함한 모든 유형의 쿼리에 작동합니다. .
  • 쿼리 자체, 영향을 받은 행 또는 열 값, 잠재적인 내용을 포함한 자세한 출력을 제공합니다. 오류.
  • 특정 요구 사항이나 데이터베이스 구조에 맞게 쉽게 수정할 수 있습니다.

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

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