21,893
社区成员




<?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 ();
}
}
?>