关于php mysql中的事务

mysql事务的最常用格式是begin,rollback,commit,end

在没有研究事务之前,总觉得这东西很复杂,在看了一些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 就按照上面的方法操作下就可以了。

你可能感兴趣的:(sql,mysql,PHP)