[英]LOAD DATA LOCAL INFILE
我有一个XML文件,我想将数据从该XML文件插入数据库
如果尝试使用以下代码,但未在datatase中存储数据
$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文件名的变量
我试图通过mysql_error捕获错误,但未显示任何内容
您似乎试图通过将文件直接推入MySQL来使事情复杂化。 对于一个简单的解决方案,您可以将整个XML文件读入w / file_get_contents内存,然后将其从PHP插入MySQL。
编辑:根据OP要求进行澄清。
好的,有很多方法可以解析PHP中的XML文件,而IMO最简单的方法就是SimpleXML 。 基本上,您想读取文件,然后对其进行迭代以创建一堆INSERT语句。 批处理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的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.