Запись в БД

Рейтинг: 0Ответов: 1Опубликовано: 15.09.2014

Здравствуйте.

Есть такой код:


  while ( ($data_f = fgetcsv($handle_f, 1000, ";"))!== FALSE) {
$insert_q = 'insert into test (val1,val2,val3,val4) values '.
  '("'.$data_f[0].'","'.$data_f[1].'","'.$data_f[2].'","'.$data_f[3].'")';
@mysql_query($insert_q);

Можно ли запрос в базу данных переделать таким образом, чтобы вместо одиночного инсерта был групповой?

Ответы

▲ 1Принят
$query = "INSERT INTO `test` (`val1`,`val2`,`val3`,`val4`) VALUES ";
$data = array();
while ( ($data_f = fgetcsv($handle_f, 1000, ";"))!== FALSE) {
  $data[] = "(".$data_f[0].",".$data_f[1].",".$data_f[2].",".$data_f[3].")";
}
$query .= implode(',', $data);

$query содержит весь запрос. Остаётся его только выполнить. А если будете использовать устаревшее расширение для работы с БД "mysql_*", то придёт суровый @eicto и поставит в угол. ;) Используйте MySQLi или PDO.