>데이터 베이스 >MySQL 튜토리얼 >MySQLi는 단일 명령문에서 여러 쿼리를 준비할 수 있습니까?

MySQLi는 단일 명령문에서 여러 쿼리를 준비할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-29 02:41:30405검색

Can MySQLi Prepare Multiple Queries in a Single Statement?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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