我有一个XML文件。我想将XML文件中的所有数据保存到数据库
XML的文件结构就像
<STORY>
<BYLINE>abc</BYLINE>
<STORYID>123456</STORYID>
</STORY>
将数据存储到我正在使用的数据库的代码是
$dom = new DOMDOcument();
$dom->loadXML(equitymarketnews/$zname);
$xpath = new DOMXpath($dom);
$res = $xpath->query("//STORY/");
$allres = array();
foreach($res as $node){
$result = array();
$byline = mysql_real_escape_string($node->getElementsByTagName("BYLINE")->item(0)->nodeValue);
$storyid = mysql_real_escape_string($node->getElementsByTagName("STORYID")->item(0)->nodeValue);
}
$sql12="insert into equitymarketnews values('$byline','$storyid')";
mysql_query($sql12);
我的数据库中什么都没有。所有值都是空白。 我哪里错了? 我认为这条线有问题
$res = $xpath->query("//STORY/");
我想在数据库中记录数据,即ABC和12345 FROm XML File To Table
答案 0 :(得分:1)
我真的不知道您的问题是什么,但假设您发布的代码不能像您一样工作,我注意到的一件事是插入记录:
$sql12="insert into equitymarketnews values('$byline','$storyid','$pubdate','$author','$cat','$subcat','$titleline','$subtitleline,'$storymain','$flag')";
mysql_query($sql12);
不应该 你的foreach
循环吗?否则你不会在数据库中得到任何东西。
在我看来,它看起来应该是这样的:
foreach($res as $node){
$result = array();
$byline = mysql_real_escape_string($node->getElementsByTagName("BYLINE")->item(0)->nodeValue);
$storyid = mysql_real_escape_string($node->getElementsByTagName("STORYID")->item(0)->nodeValue);
$sql12="insert into equitymarketnews values('$byline','$storyid')";
mysql_query($sql12);
}
答案 1 :(得分:0)
您实际上可以直接使用mysql客户端导入XML数据。我没有太多经验为您提供代码示例,但MySQL docs有相当多的文档。
基本上,你可以这样做:
LOAD XML LOCAL INFILE 'address.xml' INTO TABLE quitymarketnews ROWS IDENTIFIED BY '<STORY>';