PHP DataObject (PDO) extension defines a lightweight consistent interface for PHP to access the database.
PDO provides a data access abstraction layer, which means that no matter which database is used, the same functions (methods) can be used to query and obtain data.
PDO is released with PHP5.1 and can also be used in the PECL extension of PHP5.0. It cannot run on previous PHP versions.
This article mainly introduces the transaction processing of PDO in PHP, combined with examples to analyze the related skills of using PDO for transaction processing. Friends in need can refer to the following
This article analyzes the transaction processing of PDO in PHP through examples. Share it with everyone for your reference, the details are as follows:
Transaction processing has four characteristics: atomicity, consistency, independence, and durability.
Not all databases support transaction processing. PDO provides transaction support for databases that can perform transaction processing.
Notes when configuring transaction processing:
1. Turn off the automatic submission of PDO;
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false);
2. The methods required to open a transaction ;
$pdo->beginTransaction(); // 开启一个事务 $pdo->commit(); // 提交事务 $pdo->rollback(); // 回滚事务
3. General transaction processing is run in the try...catch... statement. When the transaction fails, the catch code segment is executed.
<?php try { $pdo->beginTransaction(); // 开启一个事务 $row = null; $row = $pdo->exec("xxx"); // 执行第一个 SQL if (!$row) throw new PDOException('提示信息或执行动作'); // 如出现异常提示信息或执行动作 $row = $pdo->exec("xxx"); // 执行第二个 SQL if (!$row) throw new PDOException('提示信息或执行动作'); $pdo->commit(); } catch (PDOException $e) { $pdo->rollback(); // 执行失败,事务回滚 exit($e->getMessage()); } ?>
If an error occurs in the SQL statement in the transaction, all SQL will not be executed. Only when all SQL statements are correct will they be submitted for execution.
The above is the detailed content of Detailed explanation of transaction processing of php PDO. For more information, please follow other related articles on the PHP Chinese website!