>백엔드 개발 >PHP 튜토리얼 >mysqli를 사용하여 MySQL에서 여러 INSERT 문을 동시에 실행하려면 어떻게 해야 합니까?

mysqli를 사용하여 MySQL에서 여러 INSERT 문을 동시에 실행하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-07 19:50:14520검색

How Can I Execute Multiple INSERT Statements Simultaneously in MySQL Using mysqli?

여러 mysqli 쿼리: INSERT 문을 동시에 실행

원래 문제:

실행 시도 mysqli_query()를 사용하는 두 개의 INSERT 문 연속적으로 두 번째 쿼리가 실패합니다. 이 문제는 단일 호출에서 여러 쿼리가 실행되는 것을 방지하는 MySQL의 보안 조치에서 비롯됩니다.

해결책: mysqli_multi_query()

한 번에 여러 쿼리를 실행하려면 호출하려면 mysqli_multi_query()를 활용해야 합니다. 함수:

$query  = "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName');";
$query .= "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year');";

$result = mysqli_multi_query($mysqli, $query);

쿼리 결과 처리

mysqli_multi_query()를 실행하면 부울 값이 반환됩니다. 그러나 mysqli_store_result()를 사용하여 각 쿼리의 결과를 수동으로 검색하고 mysqli_more_results() 및 mysqli_next_result()를 사용하여 이를 반복하는 것이 중요합니다.

while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)) {
    if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') {
        echo "Query failed: " . mysqli_error($mysqli);
    }
}

mysqli_multi_query()

  • 한 번의 호출로 여러 쿼리를 효율적으로 실행합니다.
  • 쿼리 간섭을 방지하여 데이터베이스 무결성을 유지합니다.

추가의 고려 사항

  • mysqli_store_result()는 결과가 없는 쿼리(예: INSERT 문)에 대해 FALSE를 반환할 수 있습니다. 성공을 확인하려면 mysqli_error()를 사용하십시오.
  • 자세한 내용은 mysqli_multi_query(), mysqli_more_results(), mysqli_next_result() 및 mysqli_store_result() 설명서를 참조하세요.

위 내용은 mysqli를 사용하여 MySQL에서 여러 INSERT 문을 동시에 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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