gpt4 book ai didi

php - XML 到数据库 - foreach 循环到 MySQL

转载 作者:行者123 更新时间:2023-11-29 07:25:58 24 4
gpt4 key购买 nike

我正在使用 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 的单个条目。这是我的测试条目的屏幕截图:

enter image description here

在这里你可以看到它应该是什么样子: enter image description here

我知道我的 foreach 循环做错了,我知道这对你们中的一些人来说可能很容易,但现在我无法自己修复它。非常感谢任何帮助。

最佳答案

您需要在最内层的 foreach 之外构建完整的查询。这样的事情将是一个好的开始。此线程应该能够帮助您获得与 mysqli 一起使用的绑定(bind),MySQLI binding params using call_user_func_array .使用 PDO,您只需将 $params 传递给 execute 函数。

foreach ($xml->METADATA->DATA as $item) {
foreach ($item->children() as $child) {
$cols[] = $child->getName();
$params[] = $child->nodeValue;
}
if(!empty($params)) {
$columns = implode(',', $cols);
$placeholders = rtrim(str_repeat('?, ', count($params)), ', ');
$sql = 'INSERT INTO dwh_xml ( ' . $columns . ') VALUES(' . $placeholders . ')';
$stmt = $db_con->prepare($sql);
$stmt->execute();
unset($params, $cols, $placeholders);
}
}

https://3v4l.org/nhJi7

关于php - XML 到数据库 - foreach 循环到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53707003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com