I think strong> olduğunu (başlık) yaşıyorum sorundur. Ben MySQL bağlantı kurmak, ben bir XML dosyasını okuyun ve sonra elemanları döngü ile bir tabloya bu değerleri yerleştirin. Sorun bazen 2 veya 3 veya 4 eklemek yerine sadece 1 kayıt ekleme, olduğunu. Ben okudum önceki değerlerine bağlı görünüyor. Ben değişkenleri reinitializing olduğumu düşünüyorum, ama ben bir şey eksik sanırım - umarım basit bir şey.
İşte benim kodudur. Ben başlangıçta yaklaşık 20 sütun vardı, ama ben daha kolay okunmasını sağlamak için dahil sürümünü kısaltılmış.
$ctr = 0;
$sql = "insert into csd (id,type,nickname,hostname,username,password) ".
"values (?,?,?,?,?,?)";
$cur = $db->prepare($sql);
for ($ctr = 0; $ctr < $expected_count; $ctr++) {
unset($bind_vars,$dat);
$lbl = "csd_{$ctr}";
$dat['type'] = (string) $ref->itm->csds->$lbl->type;
$dat['nickname'] = (string) $ref->itm->csds->$lbl->nickname;
$dat['hostname'] = (string) $ref->itm->csds->$lbl->hostname;
$dat['username'] = (string) $ref->itm->csds->$lbl->username;
$dat['password'] = (string) $ref->itm->csds->$lbl->password;
$bind_vars = array( $id,$dat['$type'], $dat['$nickname'], $dat['$hostname'],
$dat['$username'], $dat['$password']);
print_r ($bind_vars);
$res = $db->execute($cur, $bind_vars);
}
P.S. O Yukarıdaki kodu dahil değildir gerçi, dosyayı okuyorum nasıl, çünkü ben de bu SimpleXML etiketledi. Bu şuna benzer:
$ref = simplexml_load_file($file);
UPDATE: Önerilere göre etrafında kodunu değiştirdim ve şimdi hep aynı model değil, ama aynı derecede bozuldu. Ben takmadan önce bağlama dizisi görüntülemek zaman, bu gibi görünüyor. Ben de önce ve sonra satırları saymak, bu yüzden 0 satır sonra ben 1 eklemek olduğunu unutmayın, daha sonra 2 vardır:
0 CSDs on that ITEM now.
Array
(
[0] => 2
[1] => 0
[2] =>
[3] => X
[4] => XYZ
[5] =>
[6] =>
[7] =>
[8] => audio
[9] =>
[10] => 192.168.0.50
[11] => 192.168.0.3
[12] => 255.255.255.0
[13] => 255.255.255.0
[14] =>
[15] =>
[16] =>
[17] => 21
[18] => 5
[19] => Y
[20] => /dir
)
2 CSDs on that ITEM now.