MySQLの複数行INSERTをする

More than 1 year has passed since last update.

MySQLのbulk insertを手で書くのはまぁまぁめんどくさいなー、と思ったので何かライブラリないかなと思いつつ、bulkyというやつを見つけたりしたのですが、ちょっとコネクション周りのハンドリングとかクエリの実行周りは自前で扱いたい、という事情があったりして、bulk insert用のSQLの生成に特化したSQL_Insert_Multiを作ってみました。

こんな感じで使えます。

$builder = new SQL_Maker_InsertMulti("your_table", array('fields' => array(
    'id' => \PDO::PARAM_INT,
    'name' => \PDO::PARAM_STR,
    'created_at' => \PDO::PARAM_STR,
)));
foreach ( $data as $row ) {
    $builder->bindRow(array(
        'id'            => $row['id'],
        'name'          => $row['name'],
        'created_at'    => $row['created_at'],
    );
}
$stmt = $pdo->prepare($builer->toQuery());
$builer->bindValues($stmt);
$stmt->execute();

toQueryしたときに呼びだし元のSQLコメントを生成したりしてくれます(オフにすることもできます)。

カテゴリ:Default 時間:2013-02-12 人気:0
この記事では、 PHP5.4.10

関連記事

Copyright (C) socapnw.com, All Rights Reserved.

Socapnw All Rights Reserved.

processed in 5.362 (s). 9 q(s)