PHP 事务处理数据实现代码
public function insertUser ($userArray){
foreach ($userArray as $key => $value) {
@$field .= "$key,";
@$content .= "'$value',";
}
$field = ereg_replace(',$', '', $field);
$content = ereg_replace(',$', '', $content);
$db = db_connect(); //连接数据库
$db->autocommit(FALSE); //设置为非自动提交——事务处理
$sql1 = "INSERT INTO t_user (".$field.") VALUES (".$content.")";
$result1 = $db->query($sql1);
$sql2 = "INSERT INTO t_userpost (f_username) VALUES ('".$userArray['f_username']."')";
$result2 = $db->query($sql2);
if ($result1 && $result2) {
$db->commit(); //全部成功,提交执行结果
echo '提交';
} else {
$db->rollback(); //有任何错误发生,回滚并取消执行结果
echo '回滚';
}
$db->close();
}
相关推荐
-
php事务处理实例详解
一.php事务处理概述: 事务:是若干事件的集合 事务处理:当所有事件执行成功,事务才执行;若有任何一个事件不能成功执行,事务的其它事件也不被执行. 只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力.这里面,又以InnoDB表类型用的最多,虽然后来发生了诸如Oracle收购InnoDB等令MySQL不爽的事情,但是这类商业事件与技术无关,下面就以InnoDB表类型为例简单说一下MySQL中的事务处理. 二.php事务处理代码: <?php try{ $
-
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
本文实例讲述了PHP入门教程之使用Mysqli操作数据库的方法.分享给大家供大家参考,具体如下: Demo1.php <?php //使用 mysqli 对象操作数据库 //创建 mysqli 对象(资源句柄) $_mysqli = new mysqli(); //连接数据库 1.主机名(ip) 2.账户 3.密码 4.数据库 //mysqli_connect 函数 == $_mysqli -> connect(); $_mysqli -> connect('localhost','ro
-
php+mysql事务rollback&commit示例
mysql_query("BEGIN");//开始一个事务 mysql_query("SET AUTOCOMMIT=0"); //设置事务不自动commit $insert="INSERT INTO userinfo VALUES ('aa12','aa','1','aaa')"; mysql_query($insert); mysql_query("COMMIT");//非autocommit模式,必须手动执行COMMIT使
-
php实现mysql事务处理的方法
本文实例讲述了php实现mysql事务处理的方法.分享给大家供大家参考.具体分析如下: 要实现本功能的条件是环境 mysql 5.2 /php 5 支持事务的table 类型,需要InnoDB,有了这些条件你就可以做上面的实现了,这个事物回滚操作是大项目经常用到的,像银行,电子商务等都会用到,有需要的朋友可以参考一下. 近期项目软件升级到支持事务处理,做个示例供大家学习参考. 环境 mysql 5.2 /php 5 支持事务的table 类型 需要InnoDB php mysql 事务处理实现程
-
PHP操作MySQL事务实例
本文实例讲述了PHP操作MySQL事务的方法,分享给大家供大家参考.具体方法如下: 一般来说,事务都应该具备ACID特征.所谓ACID是Atomic(原子性),Consistent(一致性),Isolated(隔离性),Durable(持续性)四个词的首字母所写,下面以"银行转帐"为例来分别说明一下它们的含义: ① 原子性:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分.换句话说,事务是不可分割的最小单元.比如:银行转帐过程中,必须同时从一个帐户减去转帐金额,并加到另一个
-
ThinkPHP实现事务回滚示例代码
ThinkPHP的事务回滚示例如下: $m=D('YourModel');//或者是M(); $m2=D('YouModel2'); $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 $result=$m->where('删除条件')->delete(); $result2=m2->where('删除条件')->delete(); if($result && $result2){ $m->commit();//成功则提交
-
PHP中实现MySQL嵌套事务的两种解决方案
一.问题起源 在MySQL的官方文档中有明确的说明不支持嵌套事务: 复制代码 代码如下: Transactions cannot be nested. This is a consequence of the implicit commit performed for any current transaction when you issue a START TRANSACTION statement or one of its synonyms. 但是在我们开发一个复杂的系统时难免会无意中在
-
php+mysqli事务控制实现银行转账实例
本文实例讲述了php+mysqli事务控制实现银行转账的方法.分享给大家供大家参考.具体分析如下: 事务控制,也就是说所有的语句执行成功后,才会提交.否则,如果前面有语句执行成功,而后面没有执行成功,则回滚到执行之前的状态.通过银行转账的案例来说明这个应用.一个账号转了钱出去,另一个账号必须有钱转入,这样才算成功. 代码如下: <?php //1.创建数据库连接对象 $mysqli = new MySQLi("localhost","root","1
-
解析php mysql 事务处理回滚操作(附实例)
很多新手在进行项目过程中,会碰到这样一种情况,如:论坛扣币项目中,用户支付论坛币的时候如果突然断网.电脑死机.停电.等其它自然灾害时,导致本次交易没有成功(即用户的币已经扣掉了,但是服务器数据库中没有消费记录等其它情况),这种情况应该怎么样进行处理呢? 在这个时候,我们可以用Mysql事务回滚来进行处理,那代码怎么写呢? 那下面我就来说一说这个mysql事务回滚应该怎么处理. 首先MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的! 那如果,我们的数据表已经存
-
php中在PDO中使用事务(Transaction)
并且在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操作. 如果执行成功, 那么这一系列操作都会永久有效. 事务很好的解决了在操作数据库的时候不同步的问题. 同时, 通过事务去执行大数据量的时候, 执行效率可以提高很多很多. 在 PDO 中, 事务已经显得非常简单. 下面一个基本的例子, 演示了向 SQLite 数据库插入 1000000 条数据, 并且在出错的时候回滚. 复制代码 代码如下: try { $conn = new PDO('sqlite:Transactioion
-
php PDO实现的事务回滚示例
本文实例讲述了php PDO实现的事务回滚.分享给大家供大家参考,具体如下: $servername="localhost"; $username="root"; $password="admin"; $dbname="test"; try{ $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); $conn-&
-
php事务回滚简单实现方法示例
本文实例讲述了php事务回滚简单实现方法.分享给大家供大家参考,具体如下: $servername="localhost"; $username="root"; $password="admin"; $dbname="test"; try{ $conn=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); $conn-&g
-
PHP mysql与mysqli事务使用说明 分享
mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法. 应用比较多的地方是 mysqli的事务. 比如下面的示例: 复制代码 代码如下: $mysqli = new mysqli('localhost','root','','DB_Lib2Test');$mysqli->autocommit(false);//开始事物$mysqli->query($sql1);$mysqli->query($sql2);if(!$mysqli->errno){ $m
随机推荐
- Python爬虫正则表达式常用符号和方法
- Delphi创建开机启动项的方法示例
- 一款不错的flash Mp3播放器
- 详解用webpack2搭建angular2的项目
- AngularJS实现动态编译添加到dom中的方法
- 无限画框创意
- Tomcat 中如何给 web 项目配置虚拟目录的方法
- Emeditor与dos(cmd)经典使用技巧之批量生成网页
- Android编程实现实时监听EditText文本输入的方法
- JS实现日期时间动态显示的方法
- 移动端js触摸事件详解
- 浅谈C#中的常量、类型推断和作用域
- php中的MVC模式运用技巧
- 非常精妙的PHP递归调用与静态变量使用
- 在java中如何定义一个抽象属性示例详解
- mysql存储过程 游标 循环使用介绍
- 基于jquery的点击链接插入链接内容的代码
- Javascript中this关键字指向问题的测试与详解
- linux查看cpu是否支持64位的方法
- 基于Java Tomcat和激活MyEclips的深入理解