1、事务是逻辑上的一组操作,组成改组操作的每个单元,要么都执行成功,要么都执行失败,这种特性就叫做事务
注:mysql数据表支持事务的存储引擎只有innoDB
Mysql事务的特性,要求这组操作要么都成功,要么都失败,这样就避免了某个操作失败,某个成功,保证了数据的安全性
事务的使用:
(1)、开启事务 start transaction
(2)、执行sql语句
(3)、执行后有两种情况
1>都执行成功,那么就将sql语句对数据库的影响提交到数据库中 commit
2>某个语句执行失败,执行rollback(回滚),赶紧撤销对数据库表的操作。
事务在php中使用代码:
<?Php
Mysql_query('start transaction');
$q1 = 'update tab1 set money=money+200 where name=henry';
$res1 = Mysql_query($q1);
$q2 = 'update tab2 set money=money-200 where name=yh';
$res2 = Mysql_query($q2);
If($res1 && $res2){
Mysql_query('commit');
}else{
Mysql_query('rollback');
}
开启事务后,即便sql指令执行成功,只要不commit,就不会真实的对数据库有影响。只有commit提交后才会对数据库表有真实的相对应的影响。