php实现mysql事务处理的方法

本文实例讲述了php实现mysql事务处理的方法。分享给大家供大家参考。具体分析如下:

要实现本功能的条件是环境 mysql 5.2 /php 5 支持事务的table 类型,需要InnoDB,有了这些条件你就可以做上面的实现了,这个事物回滚操作是大项目经常用到的,像银行,电子商务等都会用到,有需要的朋友可以参考一下.

近期项目软件升级到支持事务处理,做个示例供大家学习参考.

环境 mysql 5.2 /php 5

支持事务的table 类型 需要InnoDB

php mysql 事务处理实现程序代码如下:

代码如下:

<?PHP
$LinkID =mysql_connect('localhost:3307','root',*******);
mysql_select_db('web_his',$LinkID);
mysql_query("set names utf8");
 
/* 创建事务 */
mysql_query('START TRANSACTION') or exit(mysql_error());
$ssql1="insert into pf_item values('22','我们','30')";  //执行sql 1
if(!mysql_query($ssql1)){
   echo $ssql1.mysql_errno().":".mysql_error()."<br>";
   mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚
   exit;
}
$ssql1="insert into pf_item values('21','hell','10')";  //执行sql 2
if(!mysql_query($ssql1)){
  echo $ssql1.mysql_errno().":".mysql_error()."<br>";
     mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚
   exit;
}
 
mysql_query('COMMIT') or exit(mysql_error());//执行事务
 
mysql_close($LinkID);
?>

希望本文所述对大家的php程序设计有所帮助。

(0)

相关推荐

  • 解析php mysql 事务处理回滚操作(附实例)

    很多新手在进行项目过程中,会碰到这样一种情况,如:论坛扣币项目中,用户支付论坛币的时候如果突然断网.电脑死机.停电.等其它自然灾害时,导致本次交易没有成功(即用户的币已经扣掉了,但是服务器数据库中没有消费记录等其它情况),这种情况应该怎么样进行处理呢? 在这个时候,我们可以用Mysql事务回滚来进行处理,那代码怎么写呢? 那下面我就来说一说这个mysql事务回滚应该怎么处理. 首先MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的! 那如果,我们的数据表已经存

  • Mysql事务处理详解

    一.Mysql事务概念 MySQL 事务主要用于处理操作量大,复杂度高的数据.由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务.事务用来管理 insert,update,delete 语句. 二.事务特性:Atomicity(原子性).Consistency(稳定性,一致性).隔离性(Isolation)和Durability(持续性,可靠性).这四个特性也简称ACID性. 1.原子

  • mysql 锁表锁行语句分享(MySQL事务处理)

    复制代码 代码如下: mysql_query("set autocommit=0"); $list_one = $db->fetch_first("select * from prizes where id = ".$id." FOR UPDATE"); $db->query("DELETE from prizes WHERE id =".$list_one['id']); mysql_query("co

  • MySQL事务处理与应用简析

    事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!删除的SQL语句delete from userinfo where ~~~delete from mail where ~~delete from article where~~~~如果没有事务处理,在你删除的过程中,假设出错了,只执行了第一

  • 为mysql数据库添加添加事务处理的方法

    语句如下:alter table tableName engine=InnoDB; 用到的表 复制代码 代码如下: CREATE TABLE IF NOT EXISTS `test` ( `id` int(10) NOT NULL auto_increment, `websitename` varchar(200) character set utf8 NOT NULL, `websiteurl` varchar(200) character set utf8 NOT NULL, PRIMARY

  • PHP+Mysql基于事务处理实现转账功能的方法

    本文实例讲述了PHP+Mysql基于事务处理实现转账功能的方法.分享给大家供大家参考.具体如下: <?php header("Content-Type:text/html;charset=utf-8"); $mysqli=new mysqli("localhost","root","","test"); if(mysqli_connect_errno()) { printf("连接失败:%s

  • mysql 事务处理及表锁定深入简析

    MYSQL的事务处理主要有两种方法. 1.用begin,rollback,commit来实现 begin 开始一个事务 rollback 事务回滚 commit 事务确认 2.直接用set来改变mysql的自动提交模式 MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过 set autocommit=0 禁止自动提交 set autocommit=1 开启自动提交 来实现事务的处理. 当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务

  • php下pdo的mysql事务处理用法实例

    本文实例讲述了php下pdo的mysql事务处理用法.分享给大家供大家参考.具体分析如下: php+mysql事务处理的几个步骤: 1.关闭自动提交 2.开启事务处理 3.有异常就自动抛出异常提示再回滚 4.开启自动提交 注意:mysql只有这个InnoDB驱动是支持事务处理的,默认MyIsAM驱动不支持,下面是实例代码: 复制代码 代码如下: <?php     try{         $pdo=new pdo("mysql:host=localhost;dbname=mydb&quo

  • php实现mysql事务处理的方法

    本文实例讲述了php实现mysql事务处理的方法.分享给大家供大家参考.具体分析如下: 要实现本功能的条件是环境 mysql 5.2 /php 5 支持事务的table 类型,需要InnoDB,有了这些条件你就可以做上面的实现了,这个事物回滚操作是大项目经常用到的,像银行,电子商务等都会用到,有需要的朋友可以参考一下. 近期项目软件升级到支持事务处理,做个示例供大家学习参考. 环境 mysql 5.2 /php 5 支持事务的table 类型 需要InnoDB php mysql 事务处理实现程

  • PHP+MySQL高并发加锁事务处理问题解决方法

    本文实例讲述了PHP+MySQL高并发加锁事务处理问题解决方法.分享给大家供大家参考,具体如下: 1.背景: 现在有这样的需求,插入数据时,判断test表有无username为'mraz'的数据,无则插入,有则提示"已插入",目的就是想只插入一条username为'mraz'的记录. 2.一般程序逻辑如下: $conn = mysqli_connect('127.0.0.1', 'root', '111111') or die(mysqli_error()); mysqli_selec

  • mysql事务处理用法与实例代码详解

    MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关 1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berkeley DB:支持事务 一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行.换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的.如果在事务的任何操作失败,则整个事务将失败. 实际上,会俱乐部许多SQL查询到一个组中,将执行所有的人都一起作为事务的一部分. 事务的特性: 事务有以下

  • Delphi远程连接Mysql的实现方法

    本文实例讲述了Delphi远程连接Mysql的实现方法,是Delphi数据库程序设计中非常重要的技巧.分享给大家供大家参考之用.具体方法如下: Delphi 通过ADOConnection链接远程Mysql数据库,要在安装软件的电脑上安装Mysql 驱动,没有的在百度下载,搜索mysql ODBC驱动就出来了 主要的链接代码如下: var srstring:string; srstring:='DRIVER={MySQL ODBC 3.51 Driver};SERVER='+Trim(SERVE

  • MySQL去重的方法整理

    MySQL去重的方法整理 [初级]有极少的重复行 使用distinct查出来,然后手动一行一行删除. [中级]按照单个字段的重复去重 例如:对id字段去重 使用方法:获取id的重复字段的值,利用相同id字段所在的行中,比较出数据不同的字段,删除 除了最小(或最大)的字段所在的该行之外的所有重复的行.一般使用主键来比较,因为主键的值一定是唯一值,绝对不相同. id name 1 a 1 b 2 c 2 a 3 c 结果: id name 1 a 2 a 操作: delete from a_tmp

  • JSP使用JDBC连接MYSQL数据库的方法

    本文实例讲述了JSP使用JDBC连接MYSQL数据库的方法.分享给大家供大家参考,具体如下: 1. 可在 http://www.mysql.com/products/connector-j/index.html下载MySQL JDBC驱动程序mysql-connector-java-*.jar,如我下载的是mysql-connector-java-5.1.18-bin.jar并加入到ClassPath下面,或加入到项目中.   2. 注册JDBC驱动程序 try { Class.forName(

  • MySQL数据库修复方法(MyISAM/InnoDB)

    在网上找了篇MySQL的技术文章,感觉不错,把它翻译过来共享下.   原文作者:Mike Peters   我整理了7条修复MySQL数据库的方法,当简单的重启对数据库不起作用,或者有表崩溃时.   简单的MySQL重启:   /usr/local/mysql/bin/mysqladmin -uUSERNAME -pPASSWORD shutdown /usr/local/mysql/bin/mysqld_safe &    1.MyISAM表崩溃    MySQL数据库允许不同的表使用不同的存

  • Centos下 修改mysql密码的方法

    1.修改MySQL的登录设置: # vim /etc/my.cnf 加上一句:skip-grant-tables 如: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock 2.重启mysql # service mysqld restart Stopping MySQL: [ OK ] Starting MySQL: [ OK ] 3.修改密码 mysql> USE mysql ; Database changed m

  • python使用MySQLdb访问mysql数据库的方法

    本文实例讲述了python使用MySQLdb访问mysql数据库的方法.分享给大家供大家参考.具体如下: #!/usr/bin/python import MySQLdb def doInsert(cursor,db): #insert # Prepare SQL query to INSERT a record into the database. sql = "UPDATE EMPLOYEE SET AGE = AGE+1 WHERE SEX = '%c'" %('M') try:

随机推荐