tek bir sorguda veritabanı tabloya dizi ekleme

3 Cevap php

iam gibi öğelerin bir dizi olan

[Item1, itmem2, Item3];

i belirli bir UserID bu öğeler eklemek zorunda:

Nihai sonuçlar bu gibi bakmak

UserId ItemId

2   ||  item1 
2   ||  item2
2   ||  item3

Şu anda php kod dizi döngü ve her öğe bir örneğin tek ekleme iam

foreach($items as $item)
{
insert into items (UserId,ItemId) value  (2,$item);
}

i tek bir sorguda tüm girişleri ekleyebilirsiniz mümkündür.

3 Cevap

Bunu gibi sorgu oluşturmak önceden yapabilirsiniz:

$query = "";
foreach($items as $item)
{
  $query .= "insert into items (UserId,ItemId) value  (2,$item);";
}

Çoğu veritabanı bir noktalı virgül ile her ayrı eğer birden çok komut vermek için izin verir.

Evet, sorgu bu gibi görünebilir:

INSERT INTO items (UserId,ItemId)
VALUES
(2, 'item1'),
(2, 'item2'),
(2, 'item3');

PHP bu dizeyi inşa edebilirsiniz.

Implode bunun için idealdir ..

foreach($items as $item){
   $items[] = '(2,' . $item.')';
}

$q = "INSERT INTO items (userID, itemID) VALUES " . implode(', ', $items);
mysql_query($q);

Bak - http://php.net/manual/en/function.implode.php