下面是关于PHP中PDO事务处理操作示例的完整攻略。
什么是PDO事务处理
在PHP中,使用PDO对数据库进行操作时,设置事务可以确保多个操作顺利执行或者回滚。事务可以理解为一组原子操作,要么全部执行,要么全部不执行。如果其中一个操作有错误,所有操作都将被回滚。可以避免数据一致性问题。
PDO事务操作示例
1. 开始事务,执行所有SQL语句,然后提交事务
try {
$pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'username', 'password');
// 开启事务
$pdo->beginTransaction();
// 执行多个SQL语句
$pdo->query("INSERT INTO users (username, password) VALUES ('user1', '123456')");
$pdo->query("INSERT INTO users (username, password) VALUES ('user2', '123456')");
// 提交事务
$pdo->commit();
} catch (\PDOException $e) {
// 回滚事务
$pdo->rollBack();
echo 'Error:'.$e->getMessage();
}
2. 开始事务,执行部分SQL语句,然后回滚事务
try {
$pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'username', 'password');
// 开启事务
$pdo->beginTransaction();
// 执行多个SQL语句
$pdo->query("INSERT INTO users (username, password) VALUES ('user1', '123456')");
$pdo->query("INSERT INTO users (username, password) VALUES ('user2', '123456')");
// 抛出异常,此时事务将回滚
throw new \Exception('Transaction failed.');
// 提交事务
$pdo->commit();
} catch (\PDOException $e) {
// 回滚事务
$pdo->rollBack();
echo 'Error:'.$e->getMessage();
}
在这个示例中,我们只是在第二个SQL语句后手动抛出了一个异常,这将导致事务回滚。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP中PDO事务处理操作示例 - Python技术站