Tek bir MySQL Hazırlayan açıklamada w / PHP ve PDO içine bir dizi eklemek için nasıl

0 Cevap php

Bir online kayıt sırasında, bir müşteri onlar için kayıt seçebilirsiniz bir dizi program seçebilirsiniz. Bu programlar, üç basamaklı bir tamsayı ve bir dizi saklanır.

Örneğin:

Ben programid 155, 165, 175, ve 185 kayıt istiyorum.

: Benim dizisi kurmak gibi basit

$data = array();

$data[] = 155;

$data[] = 165;

$data[] = 175;

$data[] = 185;

Bu ilişkili tabloya bu bilgileri eklemek için zamanı geldiğinde, ben de okullaşma diğer kısmından ek unsurları içerir:

Ben tek bir program ekleme deyimini yapıyor olsaydı aşağıdaki gibi Örneğin, görüneceğini:

$stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
$stmt->execute(array($memberid, 155));

Ben normalde sql deyimi birden çok örneğini arayıp gibi yürütmek hangi yukarıdaki dizi için basit bir döngü yaratacak:

for($j = 0; $j < (count($data)-1); $j++) {
   $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()");
   $stmt->execute(array($memberid, $data[$j]));
}

Yukarıdaki kod ($ veri [$ j]) geçersiz farkında ama çağrıyı yapmak için doğru yolu arıyor yok.

Ben de o binaya daha önce tek bir dinamik sql deyimi yukarıdaki gibi birden aramaların daha genel olarak iyidir söylendi. Benim ilk geçiş gibi bir şey olurdu:

$sql = array(); 
foreach( $data as $row ) {
    $sql[] = '("'.$memberid.'", "'.$row[$j].'", NOW()")';
}
mysql_real_query('INSERT INTO table (memberid, programid) VALUES '.implode(',', $sql));

ama PDO ile özellikle tutucular ile, bu nasıl çalıştığını oldukça emin değilim (?).

Herhangi bir öneriniz?

0 Cevap