PDOで大きなデータをまとめて入れた
bulk insertというらしい。
ぱっと見るにはここに書いた。
// 遅い、つらい $sql = "insert into hoge_table (name, screen_name) values (:name, :screen_name)"; $stmt = $dbh->prepare($sql); for($i=0;count($contents->statuses);$i++){ $params = array( ":name" => $contents->statuses[$i]->name, ":screen_name" => $contents->statuses[$i]->screen_name ) $stmt->execute($params); }
これだと、一個ずつinsertしてて遅いのでつらい、ので、valuesをまとめてドンと入れたい。
$sql = 'insert into hoge_table (name, screen_name) values'; $insertQuery = array(); $insertData = array(); for($i=0;$i<count($contents->statuses);$i++) { $insertQuery[] = '(:name' . $i . ', :screen_name' . $i . ')'; $insertData['name' . $i] = $contents->statuses[$i]->name; $insertData['screen_name' . $i] = $contents->statuses[$i]->screen_name; if(!empty($insertQuery)) { $sql .= implode(', ', $insertQuery); $stmt = $dbh->prepare($sql); $stmt->execute($insertData);
これでvaluesをまとめてどん! 一気にまとめてデータ入るのきもちぃぃぃ