1. 程式人生 > >thinkPHP3.1.2多表事務,批量插入資料, 詳解and例項

thinkPHP3.1.2多表事務,批量插入資料, 詳解and例項

往list 表裡新增一行記錄,然後更新一下user表裡的status欄位
先用 M 函式例項化一個空物件,使用 table 方法進行多個表的操作,如果操作成功則提交,失敗則回滾

public function ImportData() {   
    $Model = M();                //先用 M 函式例項化一個空物件 
    $map = true;                  //先設定一個真值 
    $Model->startTrans();    //開啟事務   
    echo "事務已開啟.........";
    foreach ( $result as $key => $value ) {       //$result為獲取到的二維陣列
        if ($key == 0 || $value == "") {
            continue;
        }
        if(條件1){
            $data['name'] = $result ['name'];
            $data['ban'] = $result ['ban'];
            $data['fee'] = $result ['fee'];
            //往list表裡新增一條資料,新增的記錄都存在Model裡,最後每一條都成功時才會commit,有一條出錯時都會rollback
            $res = $Model->table('list') -> add($data);                  
            if(條件2){
                $condition['name'] = $result ['name'];
                $update['status'] = 1;
                $res2 = $Model->table('user') -> where($condition) -> data($update) -> save();  
          
            }else{
                //設定fals的作用是為了最後判斷事務提交,還是回滾
                $map = false;
            }
        }else{
            $map = false;
        }            
    } 
    echo "事務正在處理.........";
        if($map==true){
            $Model->commit();
            echo '操作成功';
        }else{
            $Model->rollback();
            echo '操作失敗';
        }
    echo "事務結束下面的程式碼將不再受事務影響.........";
} 

相關推薦

thinkPHP3.1.2事務批量插入資料 and例項

往list 表裡新增一行記錄,然後更新一下user表裡的status欄位 先用 M 函式例項化一個空物件,使用 table 方法進行多個表的操作,如果操作成功則提交,失敗則回滾 public func

jsp頁面foreach迴圈單提交批量處理資料

jsp頁面 jsp頁面: <body> <form action="test" method="post"> <c:forEach begin="1" end="4" varStatus="status"> name:<

35. 批量插入資料不使用replace操作

題目描述 對於表actor批量插入如下資料,如果資料已經存在,請忽略,不使用replace操作 CREATE TABLE IF NOT EXISTS actor ( actor_id smallint(5) NOT NULL PRIMARY KEY, first_name varchar(45)

資料庫SQL實踐35:批量插入資料不使用replace操作

思路: SQLite如果不存在則插入,如果存在則忽略 INSERT OR IGNORE INTO tablename VALUES(...); 如果不存在則插入,如果存在則替換 INSERT OR REPLACE INTO tablename VALUES(...); 這裡指的存

Mybatis 實現Mysql批量插入資料判斷資料是否存在

常見插入資料的SQL insert into 插入資料庫時會檢查主鍵是否存在,存在會報錯 replace into 替換資料庫記錄,需要表中有主鍵或者unique索引,如果資料庫已存在的資料,會先刪除該資料然後新增。不存在的資料效果和insert into

java mybatis mapper批量插入資料insert/update/對映屬性欄位

@MapperEngine public interface BBINBetsLstMapper { public void replaceBBinBet (List<BBINbet> list); } mapper.xml檔案 <resul

mxnet層感知機訓練MNIST資料【轉】

來自:http://www.cnblogs.com/Mu001999/p/6221093.html #匯入需要的模組 import numpy as np #numpy只儲存數值,用於數值運算,解決Python標準庫中的list只能儲存物件的指標的問題 import os

DataSnap——利用TParams進行事務更新

.text nal rms exception then 進行 start datasnap final DataSnap——利用TParams進行多表事務更新 服務端: function TSVRDM.multUpdatesByPar(Upda

python 1-2+3-4....99=? 這裏的題我看到別人的寫法五花八門的自己也寫一個

blog sta 裏的 and str 想象力 pos 問題 就是 f = ""s = ""i = 1sum = 0while i < 100:   if i %2 == 1 and i < 99:     f = "-"

2.查詢

篩選 select rom left join 表之間 有關 left 格式 內連接 1.內連接:用join on 也就是選出兩個表中有關聯的部分,把兩個表中的內容顯示出來 格式 表a join 表b on (條件) 例如 select * fro

mysql四-2:查詢

多表查詢 mysql 51cto 一、準備表新建表mysql> create table department( id int, name varchar(20) );mysql> create table employee( id int primary k

web框架開發-Django模型層(2)-操作

增加 關系模型 進行 true ... 匹配條件 西遊記 port 覆寫 很重要,都是精華多表關系模型一對一一旦確定表關系是一對一,在兩張表中的任意一張表中建立關聯字段+Unique一對多一旦確定表關系是一對多,創建關聯字段在多的表中多對多一旦確定表關系是多對多,創建第三章

django模型層2 操作

digits 名稱 alt req 最大 app 聚合 員工 postgre 1.多表操作:   1.創建模型: 實例:我們來假定下面這些概念,字段和關系 作者模型:一個作者有姓名和年齡。 作者詳細模型:把作者的詳情放到詳情表,包含生日,手機號,家庭住址等信息。作者

test 2 查詢(JOINS; SUB_QUERIES)

EXERCISES 2 JOINS Find the name and salary of employees in Luton. SELECT ename, sal FROM emp, dept WHERE loc = 'LUTON' AND emp.deptno = dept.

Set,Sorted Set相關命令操作批量插入及管道事務

Set SADD key member [member ...] 向key指定的set集合新增成員,次集合是排重的,從2.4版本後才支援新增多個如果key不存在則建立key以及set集合返回當前操作成功新增的成員數量,不是所有的成員數量SMOVE source destination member把key

Atitit 常見專案角色與職責 目錄 1.1. 常見專案角色與職責 1 1.2. 解決問題思路:一般百度問同事問上一級 1 1.3. 解決問題時限:與跳過法 1 1.4. 解決方法一般實

Atitit  常見專案角色與職責     目錄 1.1. 常見專案角色與職責 1 1.2. 解決問題思路:一般百度,問同事,問上一級 1 1.3. 解決問題時限:與跳過法 1 1.4. 解決方法,一般實現一個功能,可能有多種方案,要優先選擇

impala資料匯出批量插入elasticsearch

1.從impala表匯出檔案,匯出格式為Csv impala-shell -q "select * from qscar.kcar " -B --output_delimiter="," --print_header -o kcar.csv 2.將Csv檔案轉化為指定格式(索引頭+jsono

mongodb查詢、外來鍵關聯命令+java方式實現

首先,我們回憶一下,MySQL多表關聯查詢的語句: student表: CALSS表: 通過student的classId關聯進行查詢學生名稱,班級的資料: SELECT student.name,student.age,class.name FROM stud

GreenDao 事務操作

場景:Android APP多表操作事務管理 使用Android自帶的sql操作類操作的時候需要手動處理事務,使用GreenDao的時候不用管了,啥都處理好了。但是,如果是多表操作的話,怎麼統一管理事務? 關鍵思想是事務巢狀,具體方法使用: DaoSession().callInTx()

Hbase批量匯入資料支援執行緒同時操作

/** * HBase操作工具類:快取模式多執行緒批量提交作業到hbase * * @Auther: ning.zhang * @Email: [email protected] * @CreateDate: 2018/7/30 */ public c