>백엔드 개발 >PHP 튜토리얼 >PHP를 사용하여 MySQL 트랜잭션을 수행하는 방법은 무엇입니까?

PHP를 사용하여 MySQL 트랜잭션을 수행하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-02 14:17:03427검색

PHP에서 MySQL 트랜잭션을 실행하면 데이터 일관성과 무결성이 보장됩니다. 단계는 다음과 같습니다. 데이터베이스 연결 설정 트랜잭션 열기 쿼리 실행 트랜잭션 제출(모든 쿼리 성공) 트랜잭션 롤백(모든 쿼리 실패) 실제 사례: 장바구니 애플리케이션에서 쿼리가 실패하면 트랜잭션이 롤링됩니다. 돌아가면 장바구니와 제품이 취소됩니다. 모든 쿼리가 성공하면 트랜잭션이 커밋되어 변경 사항이 영구적으로 저장됩니다.

如何使用 PHP 执行 MySQL 事务?

PHP를 사용하여 MySQL 트랜잭션을 수행하는 방법은 무엇입니까?

트랜잭션은 데이터베이스에서 일련의 작업으로, 모두 성공적으로 제출되거나 모두 롤백에 실패합니다. PHP에서 트랜잭션을 사용하면 데이터 일관성과 무결성이 보장됩니다.

단계:

  1. 데이터베이스 연결 설정: mysqli_connect() 함수를 사용하여 MySQL 데이터베이스에 대한 연결을 설정합니다. mysqli_connect() 函数建立与 MySQL 数据库的连接。
  2. 开启事务:使用 mysqli_begin_transaction() 函数开启事务。
  3. 执行查询:执行所有必要的查询。例如,更新表或插入数据。
  4. 提交事务:如果所有查询成功,使用 mysqli_commit() 函数提交事务。这将永久保存更改。
  5. 回滚事务:如果任何查询失败,使用 mysqli_rollback()
거래 시작

: mysqli_begin_transaction() 함수를 사용하여 거래를 시작하세요.

Execute Query

: 필요한 모든 쿼리를 실행합니다. 예를 들어 테이블을 업데이트하거나 데이터를 삽입합니다.

트랜잭션 커밋🎜: 모든 쿼리가 성공하면 mysqli_commit() 함수를 사용하여 트랜잭션을 커밋합니다. 그러면 변경 사항이 영구적으로 저장됩니다. 🎜🎜🎜롤백 트랜잭션🎜: 쿼리가 실패하면 mysqli_rollback() 함수를 사용하여 트랜잭션을 롤백합니다. 이렇게 하면 거래 내에서 이루어진 모든 변경사항이 취소됩니다. 🎜🎜🎜🎜실제 예: 🎜🎜🎜사용자가 장바구니에 항목을 추가하는 간단한 장바구니 애플리케이션을 생각해 보세요. 다음 코드는 트랜잭션을 사용하여 이 기능을 구현하는 방법을 보여줍니다. 🎜
// 建立数据库连接
$conn = new mysqli("localhost", "username", "password", "database");

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 开启事务
$conn->begin_transaction();

// 插入新项目到购物车表中
$sql = "INSERT INTO cart (product_id, user_id, quantity) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("iii", $productId, $userId, $quantity);
$stmt->execute();

// 更新产品表中的库存
$sql = "UPDATE products SET stock = stock - ? WHERE product_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $quantity, $productId);
$stmt->execute();

// 检查是否有任何查询失败
if ($stmt->error) {
    // 回滚事务
    $conn->rollback();
    echo "添加商品到购物车失败!";
    exit();
}

// 提交事务
$conn->commit();
echo "商品已成功添加到购物车!";
🎜 위의 예에서 쿼리(장바구니 테이블에 삽입 또는 제품 테이블 업데이트)가 실패하면 트랜잭션이 롤백되고 카트의 변경 사항이 변경됩니다. 취소됩니다. 모든 쿼리가 성공하면 트랜잭션이 커밋되고 장바구니 및 제품 테이블에 대한 변경 사항이 유지됩니다. 🎜

위 내용은 PHP를 사용하여 MySQL 트랜잭션을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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