MySQL事物控制
2016-03-06 15:49
489 查看
有时候我们需要保证事物的各个步骤都执行成功的前提下才能让每一步骤的事物执行,此时就需要事物控制。
事物控制用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。比如:网上转账系统就是典型的例子,转入与转出要保证同时进行。
事物控制用于控制事物的执行
<?php
header("Content-type:text/html;charset:utf-8");
$mysqli=new mysqli("localhost", "root", "root", "test306");
if ($mysqli->connect_error){
die("连接失败".$mysqli->connect_error);
}
$mysqli->autocommit(false); //关闭本次数据库连接的自动命令提交事务模式
$sql1="update account set account=account+10 where id=1;";
$sql2="update account set account=account-10 where id=3;";
$res1=$mysqli->query($sql1);
$res2=$mysqli->query($sql2);
if ($res1 && $res2){
$mysqli->commit(); //两项均执行成功了就提交 mysqli_commit — 提交一个事务
echo "转账成功!";
}else {
echo $mysqli->rollback(); //回滚,mysqli_rollback — 回退当前事务
echo "转账失败!";
}
?>
数据库:
create database dd;
use dd;
create table account(
id int primary key,
balance float,
)
事物控制用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。比如:网上转账系统就是典型的例子,转入与转出要保证同时进行。
事物控制用于控制事物的执行
<?php
header("Content-type:text/html;charset:utf-8");
$mysqli=new mysqli("localhost", "root", "root", "test306");
if ($mysqli->connect_error){
die("连接失败".$mysqli->connect_error);
}
$mysqli->autocommit(false); //关闭本次数据库连接的自动命令提交事务模式
$sql1="update account set account=account+10 where id=1;";
$sql2="update account set account=account-10 where id=3;";
$res1=$mysqli->query($sql1);
$res2=$mysqli->query($sql2);
if ($res1 && $res2){
$mysqli->commit(); //两项均执行成功了就提交 mysqli_commit — 提交一个事务
echo "转账成功!";
}else {
echo $mysqli->rollback(); //回滚,mysqli_rollback — 回退当前事务
echo "转账失败!";
}
?>
数据库:
create database dd;
use dd;
create table account(
id int primary key,
balance float,
)
相关文章推荐
- 由浅入深学习MySQL
- javaEE服务端与mysql编程总结
- MySQL的安装
- MySQL 5.6内存占用过高解决方案
- 高性能Mysql:B-TREE和B+-TREE
- MySQL表结构优化、数据类型选择方法
- mysql5.7.9安装
- mysql 不同步
- mysql 自己定义存储过程和触发器
- mysqldump 参数说明
- Mysql无限递归树(由子找父数据父名称)
- mysql5.5 开启慢查询日志
- mysql 快速入门
- mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
- MMM(MYsql主主复制管理器解决方案
- 主主互备配合keepalived,MYSQL解决方案
- 做一个合格的程序猿之MYSQLSQL的EXPLAIN使用(四)
- Ubuntu 安装mysql和简单操作
- DEBUG:重装mysql失败的解决办法
- mysql知识点总结