Skip to content

Instantly share code, notes, and snippets.

@mazeltov7
Created April 19, 2015 06:59
Show Gist options
  • Select an option

  • Save mazeltov7/c4e359871375884f2f92 to your computer and use it in GitHub Desktop.

Select an option

Save mazeltov7/c4e359871375884f2f92 to your computer and use it in GitHub Desktop.
PDOで複数データをまとめて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);
}
// 無理やり複数value入れられないか、valueをまとめてinsert
$sql = '"insert into hoge_table
(name, screen_name)
values'
for($i=0;$i<count($contents->statuses);$i++) {
.'('.$contents->statuses[$i]->name.','.$contents->statuses[$i]->screen_name.')"';
}
.'"';
$stmt = $dbh->prepare($sql);
$stmt->execute();
@mazeltov7
Copy link
Author

$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);

でよろしくいけた!:ok_woman:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment