您的位置:首页 > 编程语言 > PHP开发

PHP 中mysql如何实现事务提交?

2015-10-15 15:55 706 查看
事务就是指对数据库的多次修改,要么全部成功,要么全部失败,不能出现部分修改成功,部分修改失败的情况。

PHP下操作mysql数据库要实现事务提交,需注意以下方面:

1, 数据库表存储引擎类型设置为innoDB。默认的mysql表采用MYISAM引擎,是不支持事务的,因此要采用以下语句变更:

mysql> alter table ‘table_name’ engine=innodb;

2,PDO对象设置要设置errmode为Exception,否则第16行SQL执行出错,语句也不会跳到catch段去rollback, 而是继续向下执行直到commit。

try {
$pdo = new PDO($dsn, $user, $pass);     //初始化一个PDO对象,就是创建了数据库连接对象$pdo
$pdo->setAttribute (PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION );
$pdo->beginTransaction();                //开启事务
$query="正确的语句";
$result=$pdo->prepare($query);

if($result->execute()){
echo "数据添加成功!";
}else{
echo "数据添加失败!";
}

$query="错误的语句";
$result=$pdo->prepare($query);

if($result->execute()){
echo "数据添加成功!";
}else{
echo "数据添加失败!";
}

$pdo->commit();                        //执行事务的提交操作
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
$pdo->rollBack();                    //执行事务的回滚
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: