개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.09 22:43

mysqli::commit 함수에 대한 이해를 요청합니다.

목록
  • 마이크로서비스연구가 12일 전 2025.03.09 22:43
  • 11
    1
저는 MySQLi를 이용한 데이터베이스 연동에 대해 공부 중입니다.
mysqli::commit 함수는 데이터베이스 트랜잭션을 완료할 때 사용하는 함수로, rollback 함수와 함께 사용하여 데이터베이스의 일관성을 유지할 수 있습니다.
하지만 mysqli::commit 함수가 실제로 어떤 역할을 하는지, 예시를 통해 이해하는 것이 어려울 때가 있습니다.

mysqli::commit 함수를 사용하는 경우, 어떤 데이터베이스 연동 시나리오에서 사용할 수 있는지 알려주세요.
또한, mysqli::commit 함수와 rollback 함수를 함께 사용하는 방법을 알려주세요.

예를 들어, 데이터베이스에 새로운 레코드를 삽입하는 트랜잭션에서 mysqli::commit 함수를 사용하는 방법을 알려주세요.
그리고, 데이터베이스에 새로운 레코드를 삽입한 후, 그 레코드가 실제로 삽입되었는지 확인하는 방법을 알려주세요.

또한, mysqli::commit 함수를 사용할 때, 에러가 발생한 경우 rollback 함수를 사용하여 데이터베이스의 일관성을 유지하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12일 전



    mysqli::commit 함수는 데이터베이스 트랜잭션을 완료할 때 사용하는 함수로, rollback 함수와 함께 사용하여 데이터베이스의 일관성을 유지할 수 있습니다.

    mysqli::commit 함수를 사용하는 경우, 데이터베이스에 새로운 레코드를 삽입하는 트랜잭션, 데이터베이스에 레코드를 업데이트하거나 삭제하는 트랜잭션, 여러 레코드를 삽입, 삭제, 업데이트 하는 트랜잭션 등에서 사용할 수 있습니다.

    mysqli::commit 함수와 rollback 함수를 함께 사용하는 방법은 다음과 같습니다.

    1. 트랜잭션을 시작합니다. (mysqli::autocommit(false) 함수를 사용)
    2. 데이터베이스에 레코드를 삽입, 삭제, 업데이트 합니다.
    3. mysqli::commit 함수를 사용하여 트랜잭션을 완료합니다.
    4. mysqli::rollback 함수를 사용하여 트랜잭션을 취소합니다.

    예를 들어, 데이터베이스에 새로운 레코드를 삽입하는 트랜잭션에서 mysqli::commit 함수를 사용하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    mysqli::autocommit(false); // 트랜잭션을 시작합니다.
    
    $conn = new mysqli("localhost", "username", "password", "database");
    
    
    
    // 데이터베이스에 새로운 레코드를 삽입합니다.
    
    $stmt = $conn->prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
    
    $stmt->bind_param("ss", "value1", "value2");
    
    $stmt->execute();
    
    
    
    // mysqli::commit 함수를 사용하여 트랜잭션을 완료합니다.
    
    $conn->commit();
    
    
    
    // 데이터베이스에 새로운 레코드가 삽입되었는지 확인합니다.
    
    $result = $conn->query("SELECT * FROM table_name");
    
    $row = $result->fetch_assoc();
    
    echo $row["column1"]; // value1을 출력합니다.
    
    


    에러가 발생한 경우 rollback 함수를 사용하여 데이터베이스의 일관성을 유지하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    mysqli::autocommit(false); // 트랜잭션을 시작합니다.
    
    $conn = new mysqli("localhost", "username", "password", "database");
    
    
    
    // 데이터베이스에 새로운 레코드를 삽입합니다.
    
    $stmt = $conn->prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
    
    $stmt->bind_param("ss", "value1", "value2");
    
    $stmt->execute();
    
    
    
    // 에러가 발생합니다.
    
    $stmt = $conn->prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
    
    $stmt->bind_param("ss", "value3", "value4");
    
    $stmt->execute();
    
    
    
    // 에러가 발생한 경우 rollback 함수를 사용하여 트랜잭션을 취소합니다.
    
    $conn->rollback();
    
    
    
    // 데이터베이스에 새로운 레코드가 삽입되지 않았는지 확인합니다.
    
    $result = $conn->query("SELECT * FROM table_name");
    
    $row = $result->fetch_assoc();
    
    echo $row["column1"]; // NULL을 출력합니다.
    
    

    2025-03-09 22:44

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 5,472건 / 224 페이지

검색

게시물 검색