>백엔드 개발 >PHP 튜토리얼 >PHP MySQLi 코드에서 '명령이 동기화되지 않음' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

PHP MySQLi 코드에서 '명령이 동기화되지 않음' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-20 11:06:09377검색

Why Do I Get

명령이 동기화되지 않음: 원인과 해결 방법 탐구

mysqli를 통해 MySQL 쿼리를 활용하는 PHP 코드를 실행하려고 할 때 다음과 같은 문제가 발생할 수 있습니다. "명령이 동기화되지 않았습니다. 지금은 이 명령을 실행할 수 없습니다."라는 오류가 발생합니다. 이 오류는 데이터베이스 쿼리의 순차적 실행 간의 충돌을 나타냅니다.

제공된 PHP 코드는 준비된 명령문에 대해 mysqli의 버퍼링되지 않은 쿼리를 사용하기 때문에 이 문제를 나타냅니다. 즉, 언제든지 가장 최근에 실행된 쿼리 결과만 사용할 수 있습니다.

이 오류를 해결하려면 두 가지 접근 방식을 취할 수 있습니다.

  1. 저장 결과 사용: 준비된 명령문을 실행한 후 $stmt->store_result()를 호출하면 해당 쿼리의 결과가 버퍼링됩니다. 이를 통해 첫 번째 쿼리 결과에 영향을 주지 않고 후속 쿼리를 실행할 수 있습니다.
  2. 결과를 배열로 가져오기: 또는 $stmt->를 사용하여 첫 번째 쿼리의 결과를 배열로 가져올 수 있습니다. ;fetch_all(). 이렇게 하면 데이터가 메모리에 미리 로드되어 다른 쿼리를 실행할 수 있는 연결이 해제됩니다.

제공된 코드에서 $stmt->store_result()는 첫 번째 쿼리 이후에 결과를 버퍼링하는 데 사용할 수 있습니다.

if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $brand);
    $numRecords->execute();
    $numRecords->store_result();
    $data = $con->query($countQuery) or die(print_r($con->error));
    $rowcount = $data->num_rows;
    ...
}

이러한 솔루션 중 하나를 구현하면 명령이 더 이상 동기화되지 않으며 PHP 코드가 실행되어야 합니다. 성공적으로.

위 내용은 PHP MySQLi 코드에서 '명령이 동기화되지 않음' 오류가 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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