使用PHP将XML数据存储到MySQL中
我有一个XML文件(exemel.XML),如下所示:使用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
<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();
}