1. 程式人生 > >php處理ORACLE自增主鍵問題

php處理ORACLE自增主鍵問題

post tp5 pdo 執行 pan 替換 class 自動 rom

php和mysql不寫主鍵mysql可以自動生成主鍵;

想用pdo批量向mysql插入數據只能每條一個pdostarment->execute

看tp5.1的源碼提供的方案是

INSERT INTO TT2 (name, name2, name3) 
SELECT :data__name_0,:data__name2_0, :data__name3_0
UNION ALL
 SELECT :data__name_1,:data__name2_1,:data__name3_1
UNION ALL
 SELECT :data__name_2,:data__name2_2,:data__name3_2 

這樣很可以一次查詢

思考:

php連接oracle且在不使用觸發器,預處理批量插入的解決方案

INSERT INTO TT2 (id, name, name2, name3) 
SELECT SEQ_TT2.nextval, A, B, C FROM 
(SELECT :data__name_0 A,:data__name2_0 B,:data__name3_0 C FROM DUAL 
UNION ALL
 SELECT :data__name_1,:data__name2_1,:data__name3_1 FROM DUAL 
UNION ALL
 SELECT :data__name_2,:data__name2_2,:data__name3_2 FROM
DUAL)

然後給pdostarment傳入占位符替換數組即可。避免了多次執行execute問題

php處理ORACLE自增主鍵問題