2012-02-04 108 views
0

我有,我想,如果试图用下面的代码,但它不是在datataseLOAD DATA LOCAL INFILE

$sql = "LOAD DATA INFILE 'corporatenews/$zname' INTO TABLE `corporatenews` FIELDS TERMINATED BY '|' LINES STARTING BY '<row>' TERMINATED BY '</row>' (`ByLine`,`StoryId`,`PublishDate`,`Author`,`Category`,`SubCategory`,`TitleLine`,`SubTitleLine`,`StoryMain`,`Flag`)"; 

$ zname存储的数据从XML文件中的数据插入到数据库

一个XML文件是存储在XML文件名

我试图通过mysql_error捕捉错误,但没有露面

变量

回答

1

它看起来像您可以通过为tr事情过于复杂ying将文件直接推送到MySQL中。对于简单的解决方案,您可以将整个XML文件读取到内存中,然后将其从PHP插入到MySQL中。

编辑:根据OP要求澄清。

好的,那么有很多方法可以解析PHP中的XML文件,IMO最简单的方法是SimpleXML。基本上,你想读取文件,然后迭代它创建一堆INSERT语句。批量插入语句可能会更快,但现在就忘记了。

的代码会是这样的(此代码假定MySQL连接的设置是否正确):

// iterate over XML elements 
$oXml = new SimpleXMLElement('path/to/file.xml', 0, true); 
foreach($oXml as $oElement) { 
    // build main part of query 
    $sSql = 'INSERT INTO (`ByLine`,`StoryId`,`PublishDate`,`Author`,`Category`,`SubCategory`,`TitleLine`,`SubTitleLine`,`StoryMain`,`Flag`) VALUES ('; 

    $sSql .= $oXml['ByLine'] . ','; 
    $sSql .= $oXml['StoryId'] . ','; 

// .. 

} 

基本上你使用SimpleXML来从XML提取数据属性/子节点,那么你建立一个字符串,你可以传递给mysql_query

+0

可以请你告诉我该怎么做,这是一个初学者 – Manoj 2012-02-04 07:53:17

+0

我试过但没有得到任何东西 – Manoj 2012-02-04 08:15:01

+0

看看[这个例子](http://us.php.net/manual/en/simplexml.examples-basic .php),它们向您展示了如何使用SimpleXMLElement访问XML文档并获取各种节点的属性。所有你需要做的就是将它应用到你的文档中,然后一旦你有来自一个节点的变量的字段,把它们放到一个SQL语句中(以一个字符串),最后为文档中需要关联的每个节点发出INSERT到一个新的数据库条目。 – quickshiftin 2012-02-04 16:42:46