php處理ORACLE自增主鍵問題
阿新 • • 發佈:2018-03-10
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 FROMDUAL)
然後給pdostarment傳入占位符替換數組即可。避免了多次執行execute問題
php處理ORACLE自增主鍵問題