PDO::beginTransaction()

启动一个事务

首字母:P

函数名称:PDO::beginTransaction()

适用版本:PHP 5 >= 5.1.0, PHP 7, PHP 8

函数描述:该函数用于启动一个事务。在事务中,可以执行多个数据库操作,如果其中任何一个操作失败,可以回滚整个事务,保持数据库的一致性。

用法:

$dsn = "mysql:host=localhost;dbname=mydatabase";
$username = "myusername";
$password = "mypassword";
try {
 $pdo = new PDO($dsn, $username, $password);
 // 启动事务
 $pdo->beginTransaction();
 // 执行数据库操作
 $pdo->exec("INSERT INTO users (name, email) VALUES ('John Doe', 'johndoe@example.com')");
 $pdo->exec("UPDATE users SET name = 'Jane Smith' WHERE id = 1");
 // 提交事务
 $pdo->commit();
 echo "事务已提交";
} catch (PDOException $e) {
 // 回滚事务
 $pdo->rollback();
 echo "出现错误,事务已回滚:" . $e->getMessage();
}

示例解释:

  1. 首先,我们使用PDO类的构造函数创建一个数据库连接对象$pdo。在这个例子中,我们连接到名为"mydatabase"的MySQL数据库。
  2. 接下来,我们使用beginTransaction()方法启动一个事务。
  3. 在事务中,我们执行了两个数据库操作:插入一条新的用户记录和更新id为1的用户记录的名称。
  4. 最后,我们使用commit()方法提交事务,这将使所有的数据库操作都生效。如果在事务中出现任何错误,我们可以使用rollback()方法回滚事务,撤销所有的数据库操作。

请注意,PDO::beginTransaction()方法只能在支持事务的数据库引擎上使用,如MySQL、PostgreSQL等。

同首字母函数