PHP 명령이 동기화되지 않음: 딜레마 해결
PHP 및 MySQLi를 사용하여 MySQL 데이터베이스에서 데이터를 검색할 때 준비된 여러 실행 명령문은 때때로 "명령이 동기화되지 않아 명령을 실행할 수 없습니다"라는 오류로 이어질 수 있습니다. now."
원인 및 해결 방법
이 오류는 연결 개체($mysqli)에 이전 쿼리의 보류 결과가 있을 때 발생합니다. 이 문제를 해결하려면 준비된 각 명령문 다음에 $mysqli 개체에서 next_result() 함수를 호출해야 합니다.
다음 예를 고려하세요.
$stmt = $mysqli->prepare("SELECT id, username, password, firstname, lastname, salt FROM members WHERE email = ? LIMIT 1"); $stmt->bind_param('s', $loweredEmail); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($user_id, $username, $db_password, $firstname, $lastname, $salt); $stmt->fetch(); $stmt->free_result(); $stmt->close(); while ($mysqli->more_results()) { $mysqli->next_result(); } $stmt1 = $mysqli->prepare("SELECT privileges FROM delegations WHERE id = ? LIMIT 1"); $stmt1->bind_param('s', $user_id); // This is where the error occurs $stmt1->execute();
이 코드에서 오류는 다음과 같습니다. 두 번째 문($stmt1)을 실행할 때 발생합니다. 이 문제를 해결하려면 $stmt1을 실행하기 전에 다음 줄을 추가하세요.
$mysqli->next_result();
추가 팁
위 내용은 PHP MySQLi \'명령이 동기화되지 않음\': 오류를 수정하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!