Mysql
 sql >> база данни >  >> RDS >> Mysql

PDO MySQL:Вмъкване на няколко реда в една заявка

Лесен начин за това да избегнете усложненията би бил нещо подобно

$stmt = $pdo->prepare('INSERT INTO foo VALUES(:a, :b, :c)');
foreach($data as $item)
{
    $stmt->bindValue(':a', $item[0]);
    $stmt->bindValue(':b', $item[1]);
    $stmt->bindValue(':c', $item[2]);
    $stmt->execute();
}

Това обаче изпълнява оператора няколко пъти. Така че е по-добре да създадем дълга единична заявка, за да направим това.

Ето пример как можем да направим това.

$query = "INSERT INTO foo (key1, key2) VALUES "; //Prequery
$qPart = array_fill(0, count($data), "(?, ?)");
$query .=  implode(",",$qPart);
$stmt = $dbh -> prepare($query); 
$i = 1;
foreach($data as $item) { //bind the values one by one
   $stmt->bindValue($i++, $item['key1']);
   $stmt->bindValue($i++, $item['key2']);
}
$stmt -> execute(); //execute



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделя изхода от mysqldump на по-малки файлове?

  2. Свържете Java към MySQL база данни

  3. mysql селектираща заявка в сериализиран масив

  4. Въпросителни знаци на MySQL db вместо знаци на иврит..?

  5. MySQL математически функции (пълен списък)