PHP事务处理实例详细解决方案

1。PHP事务处理概述:

事务:事件的集合

事务处理:当所有事件成功执行时,执行事务;如果不能成功执行任何事件,则不会执行事务的其他事件。

只要你的MySQL版本支持BDB和InnoDB表类型,那么你的MySQL处理事务的能力。这是InnoDB表最常用的形式。虽然有一些事情,MySQL是不舒服的,如甲骨文收购InnoDB,这种商业活动无关的技术。让我们以InnoDB表类型为例,在MySQL和简要谈谈事务处理。

二、php事务处理代码:


< PHP
尝试{
为PDO =新PDO(MySQL:主机= localhost;北京PSP
为PDO -> exec(SET NAMES UTF8);
为PDO -> setAttribute(PDO::::attr_errmode,PDO errmode_exception); / /设置异常处理模型
为PDO -> setAttribute(PDO::attr_autocommit,0); / /关闭自动提交
} catch(PDOException,e){
数据库连接失败;
出口;
}

尝试{
10美元;
($ PDO ->开始); / /交易
affected_rows1美元=美元PDO -> exec(更新kfry集k_age = k_age + { },k_name = 'user1美元时代);
affected_rows2美元=美元PDO -> exec(更新kfry集k_age = k_age - { },k_name = 'user2美元时代); / /的变化或失败的成功实施
/ *如果($ affected_rows1 affected_rows2美元)
{
为PDO ->提交();
操作成功;
其他{ }
为PDO ->回滚();
**
如果(!affected_rows1美元)
把新PDOException(加入错误);
如果(!affected_rows2美元)
把新PDOException(减少错误);
操作成功;
($ PDO ->提交); / /如果你在这里表演在两更新SQL语句执行成功前,整个事务执行成功
} catch(PDOException,e){
回声操作失败。$ E -> GetMessage();
($ PDO ->回滚); / /执行事务的表出了问题,所有事务的撤销
}
为PDO -> setAttribute(PDO::attr_autocommit,1);
测试成功
操作结果:;
为SQL =SELECT * FROM kfry ;
结果=美元美元PDO ->查询($ SQL);
foreach($结果$ V)
{
echo $ V { 'k_name}。。$ V { 'k_age}。;
}
>