[摘要]本篇文章给大家带来的内容是介绍MySQL什么是事务处理 ?(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。MySQL的事务处理步骤:1.开启事务 start trans... 本篇文章给大家带来的内容是介绍MySQL什么是事务处理 ?(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。MySQL的事务处理 步骤: 1.开启事务 start transaction 当我们开启一个事务的时候,我们对sql的操作都发生在内存中,但是没有真正的反馈到数据库磁盘的文件中! 2.回滚 rollback 回滚,就是恢复到事务开启之前的最原始的状态! 注意:回滚操作会自动的关闭一个事务,如果想再次执行事务,需要重新开启事务! 3.提交 commit 事务的基本原理 普通的执行,之所以是立即执行并生效,因为默认的,MySQL对sql语句的执行是自动提交的!所以,开启一个事务的本质,就是关闭了以前的自动提交的功能,而是由用户手动提交(利用commit语句)!【相关视频教程推荐:MySQL教程】 总结事务的步骤: 1, 开启事务 2, 如果执行成功,就提交commit 3, 如果有任何一条sql语句执行失败,则回滚rollback! 事务处理的示例: 事务处理最典型的就是借还钱,下面以张三向李四还1000元为例: 首先查看数据库中各自的钱数 下面是处理还钱事务的代码: <?php
/**
* MySQL实现事务操作
*/
echo "<meta charset=utf-8>";
// 1 连接数据库
$link = @mysql_connect('localhost','root','') or die('连接数据库失败');
mysql_select_db('test',$link);
mysql_query('set names utf8');
// 2 开启事务
mysql_query("start transaction");
//设置一个变量,用来判断所有sql语句是否成功
$flag = true;
// 2.1执行事务中的一组sql语句
// 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'";
$res = mysql_query($sql);
if (!$res) {
//若sql语句执行失败,把$falg设置为false
$flag = false;
}
//张三的money-1000
$sql = "update pdo set money=money-1000 where name='张三'";
$res = mysql_query($sql);
if (!$res) {
//若sql语句执行失败,把$falg设置为false
$flag = false;
}
// 2.2 判断事务是否执行成功
if ($flag) {
//所有sql语句执行成功,把sql语句提交
mysql_query('commit');
echo "还钱成功!";
}else{
// 如其中一条执行失败,则回滚到事务开启之前的状态
mysql_query('rollback');
echo "还钱失败!";
} 结果:
下面,我们故意把其中一个字段写错,看看事务是否正常处理,数据库中的钱数是否有变化! // 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'"; //把moeny字段错写成mone 结果: 结果是还钱失败,并且数据库中各自的钱数没有变化,说明当某一条语句未执行成功时,事物不会提交,而会回滚,把数据恢复到开始事务之前的原始状态,这也是使用事务的作用,即只有当事务中所有sql语句全部执行成功,事务才会提交,否则会回滚! 总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。 以上就是MySQL什么是事务处理 ?(代码示例)的详细内容,更多请关注php中文网其它相关文章!
学习教程快速掌握从入门到精通的SQL知识。
|