
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