欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

mysql 事务处理

发布时间:2025/7/14 数据库 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mysql 事务处理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

start TRANSACTION;  //事务处理开始
UPDATE a set money =money-2 where id=1;
UPDATE a set money=money+2 where id=2;
COMMIT;//事务处理结束

start TRANSACTION;//事务处理开始
UPDATE a set money =money-2 where id=1;
UPDATE a set money=money+2 where id=2;
ROLLBACK;//事务处理回滚

alter table a change money money int UNSIGNED;//改变表MONEY为无负号

------------

实例1

 

<?php
$conn=mysql_connect('localhost','root','yourpassword')or die(mysql_error());
mysql_select_db('transaction',$conn);
mysql_query('set names utf8');

//创建事务
mysql_query('START TRANSACTION') or die(mysql_error());
$sqlA="update A set account=account-1";
if(!mysql_query($sqlA)){
&nbsp;&nbsp;&nbsp; mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚
&nbsp;   exit();
}
$sqlB="update B set account=account+1";
if(!mysql_query($sqlB)){
&nbsp;&nbsp;&nbsp; mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚
&nbsp;   exit();
}
mysql_query('COMMIT')or die(mysql_error());//执行事务
mysql_close($conn);
?>

实例2

-----------------------

php代码实现事务的处理可以通过PHP预定义类mysqli的以下方法实现。
autocommit(boolean):该方法用于限定查询结果是否自动提交,如果该方法的参数为true则自动提交,如果参数为false则关闭自动提交。MySQL数据库默认为自动提交。
rollback():利用mysqli类中的该方法可以实现事务的回滚。
commit():利用该方法可以实现提交所有查询。

 

 代码如下复制代码

<?php
include_once("conn.php");

$id=$_GET[id];
$conn->autocommit(false);
if(!$conn->query("delete from tb_sco where id='".$id."'"))
{
  $conn->rollback();
}
if(!$conn->query("delete from tb_stu where id='".$id."'"))
{
  $conn->rollback();
}
  $conn->commit();
  $conn->autocommit(true);
  echo "ok"
?>

转载于:https://www.cnblogs.com/bk7788/p/6512720.html

总结

以上是生活随笔为你收集整理的mysql 事务处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。