Ben php simplexml_load_file kullanarak bir xml dosyası ayrıştırma () ve ardından bir mysql İSAM tablodaki istenen veri ekleme duyuyorum. Sorun kodu burada ve orada 500 iç sunucu hataları ile, kez "en" çalışır. Ben sürecine çalışıyorum XML dosyası (50 MB civarında) büyük, ve çalışır zaman mysql tabloda etrafında 25000 satırları verir. Ben hatası alıyorum, komut birkaç bin satır birkaç satır bir şey ekler.
Birisi alternatif bir yol bu herhangi bir fikir vardır, ya da varsa neyse, burada kod, ben bunu takdir ediyorum, bilmiyorum, belki toplu işlem veya böyle bir şey.
<?php
include ("myconnection.php");
mysql_query("DELETE FROM mytable") or die(mysql_error());
echo "data deleted, now insert: <br /><br />";
//the url for the feed:
$feed = 'cachy/copy.xml';
echo "myfeed: ".$feed;
echo "<br />";
// Load the feed
$xml = simplexml_load_file($feed);
if ($xml != null)
{
echo "<br />Success! feed available!<br /><br />";
}
else
{
echo "<br />Couldn't fetch the content<br /><br />";
die;
}
//die;
//ini_set("memory_limit","256M");
//set_time_limit(120);
function clean($input)
{
$input = trim($input);
$input = htmlentities($input, ENT_QUOTES);
$input = mysql_escape_string($input);
$input = EscapeShellCmd($input);
return $input;
}
//insert data from feed
foreach($xml->xpath('//product') as $products)
{
$product_name = clean($products->product_name);
mysql_unbuffered_query("INSERT INTO mytable (onsaledate, onsaletime, eventdate, eventtime, buyat_short_deeplink_url, product_name, level1, level2, VenueName, VenueDMAID)VALUES (\"$products->OnsaleDate\",\"$products->OnsaleTime\",\"$products->EventDate\",\"$products->EventTime\",\"$products->buyat_short_deeplink_url\",\"$product_name\",\"$products->level1\",\"$products->level2\",\"$products->VenueName\",\"$products->VenueDMAID\")") or die(mysql_error());
}
mysql_close($myConnection);
echo "records inserted my man!";
die;
Yardımlarınız için şimdiden teşekkürler!