gpt4 book ai didi

php - 解析xml并在mysql表中插入数据

转载 作者:行者123 更新时间:2023-11-29 06:23:58 25 4
gpt4 key购买 nike

我正在使用 php simplexml_load_file() 解析 xml 文件,然后将所需的数据插入 mysql ISAM 表中。问题是该代码“大多数”情况下都能正常工作,偶尔会出现 500 个内部服务器错误。我尝试处理的 XML 文件很大(大约 50 MB),当它工作时,它会在 mysql 表中产生大约 25000 行。当我收到错误时,脚本会插入从几行到几千行的任何内容。

无论如何,这是代码,如果有人对此有任何见解,或者有其他方法,我将不胜感激,我不知道,也许是批处理或类似的方法。

<?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;

预先感谢您的帮助!

最佳答案

你得到了什么错误?

此外,如果您满足以下条件,它的运行速度会快得多:

  1. DELETE FROM table 替换为 TRUNCATE table(假设您可以重复使用 ID)
  2. 一次插入多行,如下所示

    插入表(col1、col2)值 (值1,值2), (值1a,值1b), ...

关于php - 解析xml并在mysql表中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1264820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com