MYSQL中事务的应用,结合PHP连接数据库

<?php
require ‘./conn.php‘;

$sql1="update products set store=store-10 where id=1"; //正确
$sql2="update products set stores=store+10 where id=2"; //字段错误,执行错误

mysqli_autocommit($link,false);//表示事务开始

$b1=mysqli_query($link,$sql1); // 正确
$b2=mysqli_query($link,$sql2); //错误
// 结束当前脚本

// exit;
// 任意一个不成功 都回滚到初始状态
if(!$b1||!$b2)
{
    echo "失败";

    mysqli_rollback($link);//回滚
}
else
{
    echo "成功";
    mysqli_commit($link);//提交
}

mysqli_close($link);
<?php
$host="localhost";
$db_user="root"; //数据库用户
$db_pass="root";    //数据库密码
$db_name="test";   //数据库
$timezone = "Asia/Shanghai";

$link=mysqli_connect($host,$db_user,$db_pass,$db_name);
mysqli_query($link,"SET names UTF8");

header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set($timezone); //北京时间
?>

原文地址:https://www.cnblogs.com/kangshuai/p/12331559.html

时间: 2024-10-22 04:33:32

MYSQL中事务的应用,结合PHP连接数据库的相关文章

『浅入深出』MySQL 中事务的实现

在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇文章中,我们将对事务的实现进行分析,尝试理解数据库是如何实现事务的,当然我们也会在文章中简单对 MySQL 中对 ACID 的实现进行简单的介绍. 事务其实就是并发控制的基本单位:相信我们都知道,事务是一个序列操作,其中的操作要么都执行,要么都不执行,它是一个不可分割的工作单位:数据库事务的 ACID 四大特性是事务的基础,了解了 AC

mysql中事务隔离级别可重复读说明

mysql中InnoDB引擎默认为可重复读的(REPEATABLE READ).修改隔离级别的方法,你可以在my.inf文件的[mysqld]中配置: transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE} 用户可以用SET TRANSACTION语句改变单个会话或者所有新进连接的隔离级别.它的语法如下: SET [SESSION | GLOBAL] TRANSACT

MySQL 中事务详解

1.事务的概念 2.在MySQL中哪些存储引擎(表类型)支持事务哪些不支持 3.事务的四个属性 4.mysql事务的创建与存在周期 5.mysql行为 6.事务的孤立性和性能 7.mysql的伪事务 一.事务的概念 事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的.而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚.所有受到影响的数据将返回到事物开始以前的状态:如果单元中的所有SQL语句均执行成功,则事物被

MySQL中事务的概述ACID了解

事务可由一条非常简单的SQL语句组成,也可以有一组复杂的SQL语句组成.事务是访问并更新数据库中各种数据项的一个程序执行单元.在事务中操作,要么都做修改,要么都不做,这就是事务的目的,也是事务模型区别与文件系统的重要特征之一 对于InnoDB而言,其默认的事务隔离级别为RR,完全遵循和满足事务的ACID特性 A(atomicity)原子性,在计算机系统中,每个人都将原子性视为理所当然,例如在C语言中调用SQRT函数,其要么返回正确的平方根值要么返回错误的代码. 然而在数据库事务中实现调用操作的原

深入解析Mysql中事务的四大隔离级别及其所解决的读现象

本文详细介绍四种事务隔离级别,并通过举例的方式说明不同的级别能解决什么样的读现象.并且介绍了在关系型数据库中不同的隔离级别的实现原理. 在DBMS中,事务保证了一个操作序列可以全部都执行或者全部都不执行(原子性),从一个状态转变到另外一个状态(一致性).由于事务满足久性.所以一旦事务被提交之后,数据就能够被持久化下来,又因为事务是满足隔离性的,所以,当多个事务同时处理同一个数据的时候,多个事务直接是互不影响的,所以,在多个事务并发操作的过程中,如果控制不好隔离级别,就有可能产生脏读.不可重复读.

mysql中事务的四大特性

原子性(Atomicity) 事务就像“原子”一样,不可被分割,组成事务的DML操作语句要么全成功,要么全失败,不可能出现部分成功部分失败的情况. 一致性(Consistency) 一旦事务完成,不管是成功的,还是失败的,整个系统处于数据一致的状态. 隔离性(Isolation) 一个事务的执行不会被另一个事务所干扰.比如两个人同时从一个账户从取钱,通过事务的隔离性确保账户余额的正确性. 持久性(Durability) 也称为永久性,指事务一旦提交,对数据的改变就是永久的,不可以再被回滚. My

MySQL的事务与事务隔离

MySQL中自从引入InnoDB引擎后,在MySQL中就支持事务,事务就是一组原子性的查询语句,也即将多个查询当作一个独立的工作单元,平时通过提交工作单元来完成在事务中的相应的查询或修改,在能支持事务的数据库中必须要满足ACID测试,即事务的四个特性: A:Atomicity,原子性(都执行或者都不执行) C:Consistency,一致性(从一个一致性状态转到另外一个一致性状态) I:Isolaction,隔离性(一个事务的所有修改操作在提交前对其他事务时不可见的) D: Durability

mysql中的一些操作

查询mysql中事务提交的情况: show variables like '%commit%'; 可以查看当前autocommit值 在mysql数据库中它的默认值是"on"代表自动事务. 自动事务的意义就是:执行任意一条sql语句都会自动提交事务. 测试:将autocommit的值设置为off 1.set autocommit=off 关闭自动事务. 2.必须手动commit才可以将事务提交. 注意:mysql默认autocommit=on oracle默认的autocommit=o

MySQL的事务

MySQL的事务 1.事务:事务是由一步或者几步数据库操作序列组成的逻辑执行单元,这一系列操作要么全部执行,要么全部放弃执行. 2.事务具备的四个特性(简称为ACID性): (1)原子性(Atomicity): 事务是应用中最小的执行单位,具有不可再分的特征,事务是应用中最小的逻辑执行体: (2)一致性(Consistency): 事务执行的结果必须使数据库从一个一致性状态转变到另一个一致性的状态.当数据库只包含事务成功提交的结果时,数据库处于一致性状态.如果系统运行发生中断,某个事务尚未完成而