MySQL 쿼리가 포함된 PHP 코드에서 "명령이 동기화되지 않음" 오류
mysqli를 사용하여 여러 MySQL 쿼리가 포함된 PHP 스크립트를 실행할 때, 오류가 발생할 수 있습니다: "명령이 동기화되지 않았습니다. 지금은 이 명령을 실행할 수 없습니다." 이 문제는 이전 쿼리의 결과를 가져와 처리하거나 MySQL 서버의 쿼리 명령 캐시를 지우기 전에 후속 쿼리를 시도할 때 발생합니다.
질문에 제공된 코드는 두 개의 쿼리를 실행합니다. 하나는 레코드 수를 계산하고 다른 하나는 쿼리입니다. 검색 문자열을 기반으로 행을 검색합니다. 그러나 첫 번째 쿼리 결과를 가져오기 전에 두 번째 쿼리가 실행됩니다. 이로 인해 "동기화되지 않음" 오류가 발생합니다.
오류 원인
가능한 해결 방법
예
다음은 $stmt->store_result()를 사용하여 첫 번째 쿼리 결과를 버퍼링하는 예입니다.
<?php $con = mysqli_connect("localhost", "user", "password", "db"); $brand ="o"; $countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %"; $con->query("SET NAMES 'utf8'"); if ($numRecords = $con->prepare($countQuery)) { $numRecords->bind_param("s", $brand); $numRecords->execute(); $numRecords->store_result(); // Buffer the results $data = $con->query($countQuery) or die(print_r($con->error)); $rowcount = $data->num_rows; }
위 내용은 MySQL 쿼리를 사용할 때 PHP에서 '명령이 동기화되지 않음' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!