Executing a batch in a transaction--PHP DATA OBJECT(PDO)事务处理中的批量操作
2006-12-08 21:27
796 查看
在下面的例子中,让我们假定要创建新员工的一组条目,23是这个新员工的ID。
另外还要插入该员工的基本资料,我们也需要记录他的薪水。
很简单地做两个独立的更新,调用PDO::beginTransaction() 和 PDO::commit() 将其封装,我们就可以保证没有其他人可以看见这些改变直到它们完成。
如果在这个过程中有错误发生,catch语句块回滚事务处理开始后所有的变化,并且输出一条错误信息。
<?php
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO::ATTR_PERSISTENT => true));
echo "Connected ";
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo "Failed: " . $e->getMessage();
}
?>
在一个事务处理中没有对更新查询的限制,你也可以发送复杂的查询来提取数据,然后用这些信息来构件更多的更新和查询语句。
当事物处理被激活时,PDO将保证在执行过程中没有其他的人能够改变什么。
事实上,这不完全准确,但是对于第一次接触事物处理的人来说是一个好的入门介绍。
另外还要插入该员工的基本资料,我们也需要记录他的薪水。
很简单地做两个独立的更新,调用PDO::beginTransaction() 和 PDO::commit() 将其封装,我们就可以保证没有其他人可以看见这些改变直到它们完成。
如果在这个过程中有错误发生,catch语句块回滚事务处理开始后所有的变化,并且输出一条错误信息。
<?php
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO::ATTR_PERSISTENT => true));
echo "Connected ";
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo "Failed: " . $e->getMessage();
}
?>
在一个事务处理中没有对更新查询的限制,你也可以发送复杂的查询来提取数据,然后用这些信息来构件更多的更新和查询语句。
当事物处理被激活时,PDO将保证在执行过程中没有其他的人能够改变什么。
事实上,这不完全准确,但是对于第一次接触事物处理的人来说是一个好的入门介绍。
相关文章推荐
- PHP中PDO事务处理操作示例
- PDO(php data object)+事务
- PHP使用pdo实现事务处理操作示例
- ORA-01591: lock held by in-doubt distributed transaction 以及分布式事务处理总结
- PHP中PDO的MYSQL事务处理实例
- php之PDO (PHP DATA OBJECT)
- PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
- PHP 处理 MySQL INNODB 事务回滚(ThinkPHP、MySQL、PDO)
- oracle事务处理及实例演示jdbc操作批量删除
- PHP PDO 事务处理 预处理 高洛峰 细说PHP
- 解析php mysql 事务处理回滚操作(附实例)
- PDO: php data object
- 操作分布式文件之八:如何批量并行读写远程文件和事务补偿处理
- 操作分布式文件之八:如何批量并行读写远程文件和事务补偿处理
- php实现基于pdo的事务处理方法示例
- PHP中PDO的MYSQL事务处理实例
- oracle事务处理及实例演示jdbc操作批量删除
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- PHP5中PDO(PHP DATA OBJECT)模块基础详解 推荐
- 解析php mysql 事务处理回滚操作