怎么插入mutiple在mysql中记录与pdo准备的声明?

时间:2017-11-12 09:00:12

标签: php mysql database pdo

我想通过准备好的语句在一个查询中插入10条或更多条记录,这是我的代码

$sql="INSERT INTO post (a,b,c) VALUES ";

$placeholder='';
foreach($result as $record){
   $arr=array($record[a],$record[b],$record[c]);
        $values[]=$arr;
        $placeholder.="(?,?,?),";
 }

$placeholder=rtrim($placeholder,',');
$sql.=$placeholder;

try{
    $res=$db->prepare($sql);
    $res->execute($values);
}catch(Exception $e){
    echo $e->getMessage();
}

但是,这不起作用。有可能做我想做的事吗? 如果我准备声明并执行10次声明,那么下一个问题是什么? 连接是否重新创建10次?(连接到db很多都不好) 因为在我的真实代码中,我想在新表中插入1000多条记录。

1 个答案:

答案 0 :(得分:1)

在构建要绑定的值时,构建一个数组数组,这应该只是要绑定的值的数组。

foreach($result as $record){
     $values[] = $record[a];
     $values[] = $record[b];
     $values[] = $record[c]);
     $placeholder.="(?,?,?),";
 }

如果您只想将所有值添加到数组中,则可以使用array_merge()。