【发布时间】:2015-03-15 04:54:00
【问题描述】:
我正在尝试将 xml 数据插入到我的 sql 中,但它没有插入。如何为这种类型的 xml 编写 foreach(xml->)。在这种结构中动态生成 xml。这是这种格式的示例 xml
<?php
$xmlData =<<< END
<?xml version="1.0"?>
<Customer>
<id>1</id>
<name>Oluwafemi</name>
<address>Cresent Drive, TX</address>
<list>
<contact>56689</contact>
<telephone>5889745</telephone>
</list>
<offer>congrats</offer>
</Customer>
END;
$xml = simplexml_load_string($xmlData) or die("ERROR: Cannot create SimpleXML object");
$connection = mysqli_connect("localhost", "root", "", "Customers") or die ("ERROR: Cannot connect");
foreach ($xml->Customer as $Customer) {
$id = $Customer->id;
echo "$id";
$name = $Customer->name;
$address = $Customer->address;
$sql = "INSERT INTO customerdata (id, name, address ) VALUES ('$id', '$name', '$address')";
mysqli_query($connection, $sql) or die ("ERROR: " .mysqli_error($connection) . " (query was $sql)");
}
mysqli_close($connection);
?>
【问题讨论】:
-
提示:mysql命令行工具可以直接导入大部分XML文件。另见How to import XML file into MySQL database table using XML_LOAD(); function
-
Hntt#2:
$xml在您的示例中已经代表文档<Customer>元素。这个错误在 SimpleXML 新用户中很常见。在您的情况下,您不需要在这里进行 foreach,因为它只是一个客户行。