如何使用simpleXML将元素的值分配给此数组?

时间:2011-07-30 02:12:24

标签: php mysql xml

使用下面的代码,我将我的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);

}

1 个答案:

答案 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/

很乐意帮助您了解这两个链接中的任何信息。