使用下面的代码,我将我的XML文件导入mySQL,其限制是我的XML元素必须与DB中的字段具有相同的名称和顺序。好的具有相同的名称,但我对它们的顺序有问题,因为我处理了许多不同顺序的XML。
我的问题是如何编辑现有代码,以便我可以将值分配给$ product-> name,$ product-> id等字段?我的困难是因为它使用数组。
这是我的数据库结构id, name, description, price, image, url, category, category_id, shopid
,但我的一些XML不是那个顺序。
谢谢。
$xml = simplexml_load_file('test.xml');
foreach($xml->product as $product)
{
$columns = array();
$data = array();
foreach($product->children() as $child)
{
$columns[] = $child->getName();
$data[] = mysql_real_escape_string((string)$child);
}
$col = '`'. implode('`,`',$columns) .'`';
$val = '"'. implode('","',$data).'"';
$query = "INSERT INTO products ($col) VALUES ($val)";
mysql_query($query);
}
答案 0 :(得分:0)
您要做的是将xml序列化为对象,然后您可以将产品作为对象访问,例如$ product-> Id。你最好在这里阅读:http://www.devshed.com/c/a/PHP/Serializing-XML-With-PHP/(所有步骤)。然后使用PDO(PHP的一部分)的预准备语句来运行sql。详细了解为什么使用PDO更好以及如何使其在此处运行:http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/
很乐意帮助您了解这两个链接中的任何信息。