【CodeIgniter3.0】MySQLiドライバにINSERT ON DUPLICATE KEY UPDATE 構文によるバッチ処理を追加する方法です。
MySQLiの拡張ドライバを作成してINSERT ON DUPLICATE KEY UPDATEによるバッチ処理メソッドを追加する
INSERT ON DUPLICATE KEY UPDATEによるバッチ処理メソッドを追加したMySQLiの拡張ドライバファイルを以下のようにlibrariesディレクトリ内に作成してください。
application/libraries/database/drivers/mysqli/My_DB_mysqli_driver.php
コードは以下のとおりです。
MySQLiの拡張ドライバを読みこませるためLoaderクラスを拡張する
MySQLiの拡張ドライバを読みこませるためにコアクラスのLoaderクラスを拡張します。ファイルを以下の場所に設置して下さい。
application/core/MY_Loader.php
コードは以下のとおりです。
以上で完成です。
あとはコントローラーで内で以下のメソッドを追加すれば実行されます。
$this->db->insert_on_duplicate_update_batch('tbl', $data);
データはinsert_batchメソッドと同様、配列またはオブジェクトで渡して下さい。