©
This document usesPHP Chinese website manualRelease
PDO 事务对象方法
方法 | 描述 |
---|---|
beginTransaction() |
启动一个事务 |
commit() |
提交一个事务 |
rollBack() |
回滚一个事务 |
inTransaction() |
检测是否在一个事务内 |
注意:当需要使用事务的时候,数据库表引擎不能是
MyISAM
,必须要是InnoDB
。
0]); // 建表 SQL $sql = <<exec($sql); // 使用 PDO 对象的 exec()方法执行建表语句 /*$sql = 'INSERT INTO user_account (username, money) VALUES (:username, :money),(:username2, :money2)'; $statement = $pdo->prepare($sql); // 预处理 SQL $statement->bindParam(':username', $username, PDO::PARAM_STR); $statement->bindParam(':money', $money); $statement->bindParam(':username2', $username2, PDO::PARAM_STR); $statement->bindParam(':money2', $money2); $username = 'luo'; $money = 3000.00; $username2 = 'li'; $money2 = 3000.00; $statement->execute(); // 执行预处理*/ // 开启事务 $pdo->beginTransaction(); $res = $pdo->exec('UPDATE user_account SET money = money - 2000 WHERE username = "li"'); if ($res == 0) { throw new PDOException('li 转账失败'); } $res2 = $pdo->exec('UPDATE user_account SET money = money + 2000 WHERE username = "luo"'); if ($res2 == 0) { throw new PDOException('luo 接受转账失败'); } $pdo->commit(); } catch (PDOException $e) { echo $e->getMessage(); }