在PDO中使用mysql insert with implode

时间:2014-01-25 11:04:14

标签: php mysql sql csv pdo

我一直在使用以下查询将我的数据上传到mysql数据库:

$sql = array(); 
foreach( $data as $row ) {
    $sql[] = '("'.mysql_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
mysql_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));

由于我开始使用PDO,我的查询看起来像这样:

$query="INSERT INTO mytable (name, use) VALUES(:sname, :usee)";     
$res = $db_conn->prepare($query);
$res->bindValue(':sname',$value);
$res->bindValue(':usee',$_SESSION['usee']);
$res->execute();

现在上面的代码块很好,但现在当我浏览我的CSV上传内容时,我再次向后看并使用第一个代码。现在也想使用相同的PDO进行CSV上传。

是否有使用PDO一次在数据库中上传多个值的技巧?

1 个答案:

答案 0 :(得分:1)

是的,你可以使用一些你将执行的循环,如下所示:

$query = $db->prepare(
    'INSERT INTO mytable (name, use) VALUES(:sname, :usee)'
  );
      foreach($mainArrayOfveluus AS $arrayOfValue){
            $query->execute(array(
          ':sname' => $arrayOfValue['sname'],
          ':usee' =>$arrayOfValue['usee']
        ));
      }

      $query->commit();