mysql事务的最常用格式是begin,rollback,commit,end
在没有研究事务之前,总觉得这东西很复杂,在看了一些demo之后,发现它也不是特别复杂,当然也许我没有接触到复杂的业务吧
先来贴段代码吧
整个过程就是这样的,其实吧,你可以把它看成一个if else语句 中间就是语句块
接下来说下支持事务的引擎,并不是所有mysql的数据引擎都支持事务的,mysql默认的数据引擎是MyISAM 而mysql中只有INNODB 和 BDD两种引擎支持
假如mysql不支持INNODB的话,需要在找到mysql的配置文件my.ini 然后打开找到skip-InnoDB,把前面的#号去掉,然后重启mysql服务
然后打开phpmyadmin 点顶部的变量 然后查找 have InnoDB 如果是yes 就说明支持,如果不是yes 就按照上面的方法操作下就可以了。
在没有研究事务之前,总觉得这东西很复杂,在看了一些demo之后,发现它也不是特别复杂,当然也许我没有接触到复杂的业务吧
先来贴段代码吧
<?php
$database = mysql_connect( "localhost","root", "" );
mysql_select_db( 'test', $database );
mysql_query( 'set names utf-8' );
mysql_query('BEGIN');//事务开始
$sql = 'insert into test (name) values ('ttest')';
//可以是多条语句
$res = mysql_query($sql);
if($res){
mysql_query('COMMIT');//提交事务
echo '提交成功';
}
else{
mysql_query('ROOLBACK');//提交失败,事务回滚
echo '提交失败';
}
mysql_query('END');//事务结束
?>
整个过程就是这样的,其实吧,你可以把它看成一个if else语句 中间就是语句块
接下来说下支持事务的引擎,并不是所有mysql的数据引擎都支持事务的,mysql默认的数据引擎是MyISAM 而mysql中只有INNODB 和 BDD两种引擎支持
假如mysql不支持INNODB的话,需要在找到mysql的配置文件my.ini 然后打开找到skip-InnoDB,把前面的#号去掉,然后重启mysql服务
然后打开phpmyadmin 点顶部的变量 然后查找 have InnoDB 如果是yes 就说明支持,如果不是yes 就按照上面的方法操作下就可以了。