$source = "abcd.xml";
 
        $data=file_get_contents($source);
 
         preg_match_all ('|<articles>(.*?)<\/articles>|si', $data, $bilgi['articles']);
        preg_match_all ('|<url>(.*?)<\/url>|si', $data, $bilgi['url']);
        preg_match_all ('|<name>(.*?)<\/name>|si', $data, $name);
        preg_match_all ('|<email>(.*?)<\/email>|si', $data, $email);
        preg_match_all ('|<ip_address>(.*?)<\/ip_address>|si', $data, $ip_address);
        preg_match_all ('|<message>(.*?)<\/message>|si', $data, $message);
        preg_match_all ('|<date>(.*?)<\/date>|si', $data, $date);
şeklinde dosyadan verielri alıyorum.

Fakat foreach ile tüm verileri aynı anda veritabanına giremiyorum.

şunu denedim:
yukarıda alınan bilgileri 1 dizi içinde kaydetmen ve sonra diziyi girmen çok daha rahat olur
$bilgi['articles'] gibi degistirdim ilk 2 sini sonra

foreach ($bilgi as $veri) {

mysql_query (" INSERT INTO tablo (a,b,c) values ($veri[articles],$veri[url]) ");
}
tarzinda yapabilirsin kodlamada syntax hatasi olabilir hizli yazdim ama bu mantigin isini gorecegini biliyorum.