PHP 操作 MySQL 执行数据库事务

<?php
$mysqli=new mysqli();//实例化mysqli
$mysqli->connect(‘localhost‘,‘root‘,‘admin‘,‘test‘);
if(mysqli_connect_error()){
    exit(‘数据库连接错误,错误信息是.‘.mysqli_connect_error());
}
$mysqli->set_charset("UTF8");//设置数据库编码
//首先你必须关闭自动提交数据
$mysqli->autocommit(false);
//创建一个SQL语句,必须同时运行成功,不能出现一个成功,一个失败
$sql .= "UPDATE `friend` SET state=state+5 WHERE id=1;";
$sql .= "UPDATE `flower` SET tg_flower=flower-5 WHERE id=1;";
//执行两条SQL语句
if ($mysqli->multi_query($sql)) {
//获取第一条SQL一影响的行数
$success = $mysqli->affected_rows == 1 ? true : false;
//下移,第二条SQL
$mysqli->next_result();
//获取第二条SQL影响的行数
$success2 = $mysqli->affected_rows == 1 ? true : false;
//判断是否都正常通过了,两个SQL
if ($success && $success2) {
$mysqli->commit();
echo ‘完美提交!‘;
} else {
$mysqli->rollback();
echo ‘程序出现异常!‘;}
} else {
echo "SQL语句有误:".$mysqli->errno.$mysqli->error;
}
//最后还必须开启自动提交
$mysqli->autocommit(true);
$result->free();//释放查询内存(销毁)
$mysqli->close();//别忘了关闭你的"小资源";
?>
时间: 2024-08-26 22:58:38

PHP 操作 MySQL 执行数据库事务的相关文章

PHP系列(十一)PHP操作mysql(i)数据库

                                     [Php操作Mysql数据库] 在PHP脚本中操作MySQL数据库的的六个步骤如下: 1.连接MySQL数据库服务器并判断是否连接正确 2.选择数据库 3.设置字符集 4.准备SQL语句并发送SQL语句到MySQL服务器并获取记录集 5.处理结果集 6.释放结果集资源,关闭数据库连接 一.PHP连接到MySQL <?php //我们全面采用UTF-8 编码. header('Content-Type:text/html;c

如何将一个操作“绑定到数据库事务上”

摘要 spring-cache简介 基本机制 事务上下文中的问题 将操作绑定到数据库事务上 spring-cache的相关实现 TransactionSynchronizationManager和TransactionSynchronizationAdapter 事务相关操作注册与回调流程 其它应用 摘要 在开发中,我们常常会遇到(或者需要)把一些操作"绑定到数据库事务上".也就是说,如果数据库事务成功提交,则执行这个操作:如果数据库事务回滚,则不执行这个操作(或者执行另一个操作).

【MySQL】数据库事务深入分析

一.前言 只有InnoDB引擎支持事务,下边的内容均以InnoDB引擎为默认条件 二.常见的并发问题 1.脏读 一个事务读取了另一个事务未提交的数据 2.不可重复读 一个事务对同一数据的读取结果前后不一致.两次读取中间被其他事务修改了 3.幻读 幻读是指事务读取某个范围的数据时,因为其他事务的操作导致前后两次读取的结果不一致.幻读和不可重复读的区别在于,不可重复读是针对确定的某一行数据而言,而幻读是针对不确定的多行数据.因而幻读通常出现在带有查询条件的范围查询中 三.事务隔离级别 1.读未提交(

用JDBC操作MySQL——大量数据库操作时使用批处理提速

之前所有的操作由于数据量很小,所以没有进行批处理的优化,性能也没有出现明显的恶化,但是随着我用java处理数据量的大幅提高,频繁使用静态SQL语句的方法严重降低了处理效率,这里总结一下JDBC批处理的方法,来提高数据库的吞吐量. 首先,在SQL语句的形成上,我们可以使用StringBuilder合成SQL,也可以使用JDBC的set方法将参数带入. JDBC的批处理方法已知的有2大类:基于Statement对象的和PreparedStatement对象的 1. Statement对象的批处理  

C#实现执行数据库事务案例

我是实际项目来拆出来做的案例,场景是比如我们在做电商网站时,在创建订单时的一系列操作,通常在创建订单时我们需要数据表的操作有:订单的表头(主表).订单的详细.清空购物车.甚至是修改优惠劵的状态(在使用了优惠劵的时候),下面直接把执行事务的主方法直接贴出来: public static bool CreateUserOrder(UserOrder model, string Ids) { List<string> SQLStringList = new List<string>();

php操作mysql(数据库常规操作)

php操作数据库八步走 <?php // 1.建立连接 $connection = mysqli_connect('127.0.0.1', 'root', '123456'); // 2.判断连接是否成功 if (mysqli_connect_error() != null) { die(mysqli_connect_error()); } else { echo "连接成功!"; } ///3.选择数据库 mysqli_select_db($connection, 'test'

PHP使用mysqli操作MySQL数据库

PHP的 mysqli 扩展提供了其先行版本的所有功能,此外,由于 MySQL 已经是一个 具有完整特性的数据库服务器 , 这为PHP 又添加了一些新特性 . 而 mysqli 恰恰也支持了 这些新特性. 一. 建立和断开连接 与 MySQL数据库交互时,首先要建立连接,最后要断开连接,这包括与服务器连接并 选择一个数据库 , 以及最后关闭连接 .与 mysqli 几乎所有的特性一样 , 这一点可以使用面向 对象的方法来完成,也可以采用过程化的方式完成. 1. 创建一个 mysqli 的对象 $

Mysql数据库理论基础之八--数据库事务

一.简介 由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点: 1.是一种数据库管理系统 2.是一种关联数据库管理系统 3.是一种开放源码软件,且有大量可用的共享MySQL软件 4.MySQL数据库服务器具有快速.可靠和易于使用的特点 5.MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中 InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建.这样,表的大小就能超过单独文件的最大容量.表空间可包括原始磁盘分区,从而使得很大的表成为可能

MySQL数据库事务的理解与操作

事务是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行.要么都不执行.事务是一个不可分割的工作逻辑单元. 事务具备四个属性,简称ACID属性: 原子性(Atomicity):事务是一个完整的操作.事务的各步操作是不可分的(原子的):要么都执行.要么都不执行. 一致性(Consistency):当事务完成时,数据必须处于一致状态. 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务