使用PHP将XML数据存储到MySQL中

使用PHP将XML数据存储到MySQL中,php,mysql,xml,database,mysqli,Php,Mysql,Xml,Database,Mysqli,我有一个XML文件(exemel.XML),如下所示: <XMLmeta> <Container> <Group> <Name>Persephone</Name> <Order>1</Order> <School> <Schoolname>Best High School</School

我有一个XML文件(exemel.XML),如下所示:

<XMLmeta>
<Container>

    <Group>
        <Name>Persephone</Name>
        <Order>1</Order>
            <School>
                <Schoolname>Best High School</Schoolname>
                <Grade>10</Grade>
            </School>
    </Group>

 <Group>
      <Name>John</Name>
      <Order>2</Order>
      <School>
      <Schoolname>Wurst High School</Schoolname>
      <Grade>9</Grade>
      </School>
 </Group>

 </Container>
 </XMLmeta>

您可以通过迭代
$xml->Container->Group
来实现这一点

您可以阅读更多关于XML的内容,但基本上它将XML文档解析为标准对象

例如:

<?php
$entries = [];
foreach ($xml->Container->Group as $group) {
  $entry = [];
  $entry['name'] = $group->Name->__toString();
  $entry['order'] = $group->Order->__toString();
  $entry['school_name'] = $group->School->Schoolname->__toString();
  $entry['grade'] = $group->School->Grade->__toString();
  $entries[] = $entry;
}
这提供了一个完整的简单数组格式,然后可以将其插入到数据库表中

也许是这样的:

foreach ($entries as $entry) {
  $insert = $danielbryan->prepare('INSERT INTO mytable (`name`, `order`, `school_name`, `grade`) VALUES(?,?,?)');
  $insert->bind_param("sdsd", $entry['name'], $entry['order'], $entry['school_name'], $entry['grade']);
  $insert->execute();
}
希望这有帮助

Array
(
    [0] => Array
        (
            [name] => Persephone
            [order] => 1
            [school_name] => Best High School
            [grade] => 10
        )

    [1] => Array
        (
            [name] => John
            [order] => 2
            [school_name] => Wurst High School
            [grade] => 9
        )

)
foreach ($entries as $entry) {
  $insert = $danielbryan->prepare('INSERT INTO mytable (`name`, `order`, `school_name`, `grade`) VALUES(?,?,?)');
  $insert->bind_param("sdsd", $entry['name'], $entry['order'], $entry['school_name'], $entry['grade']);
  $insert->execute();
}