【发布时间】:2018-12-10 13:45:57
【问题描述】:
我正在使用 simpleXML 获取 XML 文件,并且我想使用 foreach 循环将这些值存储在我的数据库中。这是我的代码:
<?php
$xml = simplexml_load_string('XML-FILE');
foreach ($xml->METADATA->DATA as $item) {
foreach ($item->children() as $child) {
$sel_stmt = "INSERT INTO dwh_xml (".$child->getName().") VALUES ('".$child."') ";
directSQL($sel_stmt);
}
}
?>
我的 XML 文件如下所示:
<xml version="1.0" encoding="utf-8">
<METADATA>
<DATA>
<FIELD_1>001</FIELD_1>
<FIELD_2>ENTRY_2</FIELD_2>
<FIELD_3>ENTRY_3</FIELD_3>
<FIELD_4>ENTRY_4</FIELD_4>
<FIELD_5>ENTRY_5</FIELD_5>
<FIELD_6>000003</FIELD_6>
<FIELD_7>ENTRY_7</FIELD_7>
<FIELD_8>ENTRY_8</FIELD_8>
<FIELD_9>ENTRY_9</FIELD_9>
<FIELD_10>ENTRY_10</FIELD_10>
<FIELD_11>ENTRY_11</FIELD_11>
<FIELD_12>ENTRY_12</FIELD_12>
<FIELD_13>ENTRY_13</FIELD_13>
</DATA>
<METADATA>
</xml>
导入到我的数据库正在工作,但是对于每个值,它都会生成一个新条目,我不知道必须如何更改上面的代码,以便它将成为我的数据库中具有一个 ID 的单个条目。这是我的测试条目的屏幕截图:
我知道我的 foreach 循环做错了,我知道这对你们中的一些人来说可能很容易,但现在我无法自己修复它。任何帮助将不胜感激。
【问题讨论】:
-
感谢您的回答。你可以和我分享一些代码吗?我正在使用 mysqli 而不是 PDO。非常感谢您的帮助。
-
前一个是正确的,但循环 i for date 也尝试使它用于该字段...假设您在一个字段中有更多值,它会起作用跨度>
-
好的,谢谢@user3783243!期待你的代码
标签: php mysql xml foreach simplexml