关于mysql事务的问题

tottyandbaty 2017-10-26 01:56:38
代码如下:



<?php

$dsn = 'mysql:dbname=test;host=192.168.0.72' ;
$user = 'root' ;
$password = 'root' ;

try {
$dbh = new PDO ( $dsn , $user , $password );
} catch ( PDOException $e ) {
echo 'Connection failed: ' . $e -> getMessage ();
}
for($i=0;$i<=20;$i++){
printf('loop:%d<br>',$i);
trigger($dbh);
}


function trigger($dbh){
try{
$dbh -> beginTransaction ();
$rs=$dbh->exec("update account set money=money-10 where user_id=100");
printf('exec:%d<br>',$rs);
printf('start rollback:%d<br>',__LINE__);
$dbh->rollBack ();
//这里为了测试,故意抛出异常
throw new Exception('errror 24');
$dbh -> commit ();

} catch (Exception $e) {
printf('start rollback:%d<br>',__LINE__);
$dbh->rollBack();
echo 'Connection failed2: ' . $e -> getMessage ();
}

}

?>



代码中有2个$dbh->rollBack(); 为啥循环只执行了1次?
...全文
132 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧