집 >데이터 베이스 >MySQL 튜토리얼 >MySQLi는 단일 명령문에서 여러 쿼리를 준비할 수 있습니까?
MySQLi는 하나의 문에서 여러 쿼리를 준비할 수 있나요?
단일 MySQLi 문으로 여러 쿼리를 준비하는 것은 불가능하지만 해결 방법이 있습니다.
다중 문 준비
단일 MySQLi 문에서 여러 쿼리를 준비하려고 하면 오류가 발생합니다. 또는 여러 개의 준비된 문을 만들 수 있습니다.
<code class="php">$stmt = $mysqli->prepare("SELECT * FROM users"); $stmt2 = $mysqli->prepare("INSERT INTO orders (user_id) VALUES (?)");</code>
준비된 문 결합
제어된 방식으로 여러 쿼리를 실행하려면 다음을 사용하여 준비된 문을 결합할 수 있습니다. transaction:
<code class="php">mysqli->begin_transaction(); $stmt->execute(); $stmt2->execute(); mysqli->commit(); // Execute transaction</code>
이것은 두 쿼리가 모두 성공적으로 실행되거나 전혀 실행되지 않도록 보장합니다.
오류 처리
준비된 문 중 하나라도 실행 중에 실패하면 트랜잭션이 롤백되고 변경 사항이 적용되지 않습니다. 준비된 문을 실행한 후 오류를 확인하는 것이 중요합니다.
<code class="php">if ($stmt->errno != 0) { echo "Error: " . $stmt->error; }</code>
추가 팁
일반적으로 "비객체에서 멤버 함수 호출" 오류가 발생합니다. prepare() 메소드가 실패할 때 발생합니다. 계속하기 전에 쿼리 문자열이 구문적으로 올바른지 확인하세요.
위 내용은 MySQLi는 단일 명령문에서 여러 쿼리를 준비할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!