yii 进行事务操作是不可以在一条sql里边放多条sql

             $sql = ‘INSERT INTO `table1`(`customerID`, `advertisementID`, `consumedStatus`, `consumedTime`) VALUES (:customerID,:advertisementID,:consumedStatus,:consumedTime);
                     UPDATE `table2` SET `consumedTimes`= `consumedTimes` + 1 WHERE `advertisementID`= :advertisementID;
                     UPDATE `table3` SET `appAdPoint`=`appAdPoint` + :price WHERE `customerID` = :customerID‘;

             $command = $connection->createCommand($sql);
             $command->bindParam(‘:customerID‘, $customerID);
             $command->bindParam(‘:advertisementID‘, $advertisementID);
             $command->bindParam(‘:consumedStatus‘, $consumedStatus);
             $command->bindParam(‘:consumedTime‘, date(‘Y-m-d H:i:s‘));
             $command->bindParam(‘:price‘, $price);
             $updateStatus = $command->execute();
             $command->execute();

注意:

  1. yii在进行如上的操作的时候,因为$sql中有三条sql语句导致了$command->execute();无法正常工作,这里它只检测第一条sql是否正常执行,后两条及时错了也无法通过$updateStatus显示出来!
  2. 一条sql中执行多条语句,无法进行事务transaction会导致无法更新数据库
时间: 2024-10-20 13:17:48

yii 进行事务操作是不可以在一条sql里边放多条sql的相关文章

2.关于QT中数据库操作,简单数据库连接操作,数据库的增删改查,QSqlTableModel和QTableView,事务操作,关于QItemDelegate 代理

 Linux下的qt安装,命令时:sudoapt-get install qt-sdk 安装mysql数据库,安装方法参考博客:http://blog.csdn.net/tototuzuoquan/article/details/39565783 如果行想进数据库开发,需要安装libqt5sql5-mysql.命令是: sudo apt-get install libqt5sql5-mysql 4 创建一个项目 要调用数据库,需要加上QT += gui widgets sql  也就是说要加

YII 数据库相关操作

CDbConnection:  一个抽象数据库连接 CDbCommand:     SQL statement CDbDataReader:  匹配结果集的一行记录 CDbTransaction:数据库事务 访问数据库前需要建立数据库连接:使用DAO建立一个抽象数据库链接: $connection = new CDbConnection($dsn, $username, $password); $connection->active = true;     // 只有激活了连接才可以使用 $co

YII 数据库相关操作(转)

CDbConnection: 一个抽象数据库连接CDbCommand: SQL statementCDbDataReader: 匹配结果集的一行记录CDbTransaction:数据库事务 访问数据库前需要建立数据库连接:使用DAO建立一个抽象数据库链接: $connection = new CDbConnection($dsn, $username, $password);   $connection->active = true;     // 只有激活了连接才可以使用   $connect

Winform开发框架里面使用事务操作的原理及介绍

在很多情况下,事务是个很有用的东西,可以把一系列的操作组合成一个原子粒度的操作,一旦组合中某个地方出错,可以整个干净的进行滚回,不会留下脏数据:除此之外,事务还能提高批量操作的效率,如在本地SQLite数据库里面,批量插入1万条数据,那么使用事务和没有使用事务,速度上至少差别几十到上百倍的差异.既然事务有完整性和速度性的差异,因此,基于上述原因,我们在很多情况下最好使用事务进行操作.本文主要介绍在开发框架中如何整合事务的操作,并介绍在各个分层中的事务使用案例. 由于我介绍的相关框架,主要是采用了

SpringBoot JPA实现增删改查、分页、排序、事务操作等功能

今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查.分页.排序.事务操作等功能.下面先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 SQL 中的 and 关键字,比如 findByHeightAndSex(int height,char sex): public List<User> findByHeightAndSex(int height,char sex); // Or --- 等价于 SQL 中的 or 关键字,比如 findByHeig

MySql的事务操作与示例

事务就是一个逻辑工作单元的一系列步骤.事务是用来保证数据操作的安全性 事务的特征: Atomicity(原子性) Consistency(稳定性,一致性) Isolation(隔离性) Durability(可靠性) [事务只针对对数据数据产生影响的语句有效] show engines  //查看mysql锁支持的数据引擎 MyISAM不支持事物,InnoDB支持事物 默认情况下,MySQL将以自动提交模式运行,这意味着没一条小命令都将当做一个只有一条命令的事物来执行. 如果要让mysql支持支

Oracle 事务操作(事务的回滚与提交)

在看本文之前,请确保你已经了解了Oracle事务和锁的概念即其作用,不过不了解,请参考数据库事务的一致性和原子性浅析和Oracle TM锁和TX锁 1.提交事务 当执行使用commit语句可以提交事务.当执行了commit语句后,会确认事务的变化.结束事务.删除保存点.释放锁.在此之前,与当前事务相关的数据都会被加锁,直到当前事务进行了commit操作,如果在这个过程中有其他回话试图操作相关数据,(这些数据已经被当前事务加锁),那么其他回话会进行等待,或者直接返回错误. 注意:只有在提交事务之后

多语句事务操作

要求: 向数据库中插入两条SQL, 要求一条失败, 事务回滚. 环境: spring boot 方法一 : 第一个想到spring的事务机制 -----  @Transactional , 使用之前需要对transactionManager进行配置, 我这边是配置在dataSource的文件, applicationContext.xml文件中 , 引入注解是事务, ①在配置文件中引入<tx:>命名空间 <beans xmlns="http://www.springframew

Redis源代码分析(十七)--- multi事务操作

redis作为一非关系型数据库,居然相同拥有与RDBMS的事务操作,不免让我认为比較吃惊.在redis就专门有文件就是运行事务的相关操作的.也能够让我们领略一下.在Redis的代码中是怎样实现事务操作.首先亮出mulic.c以下的一些API. /* ================================ MULTI/EXEC ============================== */ void initClientMultiState(redisClient *c) /* 初始