PHP에서 MySQL 트랜잭션을 실행하면 데이터 일관성과 무결성이 보장됩니다. 단계는 다음과 같습니다. 데이터베이스 연결 설정 트랜잭션 열기 쿼리 실행 트랜잭션 제출(모든 쿼리 성공) 트랜잭션 롤백(모든 쿼리 실패) 실제 사례: 장바구니 애플리케이션에서 쿼리가 실패하면 트랜잭션이 롤링됩니다. 돌아가면 장바구니와 제품이 취소됩니다. 모든 쿼리가 성공하면 트랜잭션이 커밋되어 변경 사항이 영구적으로 저장됩니다.
PHP를 사용하여 MySQL 트랜잭션을 수행하는 방법은 무엇입니까?
트랜잭션은 데이터베이스에서 일련의 작업으로, 모두 성공적으로 제출되거나 모두 롤백에 실패합니다. PHP에서 트랜잭션을 사용하면 데이터 일관성과 무결성이 보장됩니다.
단계:
mysqli_connect()
함수를 사용하여 MySQL 데이터베이스에 대한 연결을 설정합니다. mysqli_connect()
函数建立与 MySQL 数据库的连接。mysqli_begin_transaction()
函数开启事务。mysqli_commit()
函数提交事务。这将永久保存更改。mysqli_rollback()
: mysqli_begin_transaction()
함수를 사용하여 거래를 시작하세요.
: 필요한 모든 쿼리를 실행합니다. 예를 들어 테이블을 업데이트하거나 데이터를 삽입합니다.
트랜잭션 커밋🎜: 모든 쿼리가 성공하면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 중국어 웹사이트의 기타 관련 기사를 참조하세요!