如何将 XML 中的数据插入数据库 [重复]
Posted
技术标签:
【中文标题】如何将 XML 中的数据插入数据库 [重复]【英文标题】:How can i insert data from an XML into a database [duplicate] 【发布时间】:2015-03-28 14:47:05 【问题描述】:我想使用 php 将以下 XML 文件插入到 mysql 数据库中
<?xml version="1.0" encoding="UTF-8"?>
<PrintLetterBarcodeData
uid="725733706873"
name="RAVINDER KUMAR"
gender="M"
yob="1996"
co="S/O KAKA RAM"
house="460A"
street="WARD NO. 6"
lm="NA"
loc="NA"
vtc="Nanyola (292)"
po="Naneola"
dist="Ambala"
state="Haryana"
pc="134003"
/>
如何从这个 XML 文件中提取数据以将它们插入数据库?
【问题讨论】:
可能有用:***.com/questions/15976852/… 您好,我想将此参数插入到表中。 欢迎使用 ***。应该有用***.com/help/how-to-ask ***.com/q/294771/367456 【参考方案1】:对于 PHP 方法,您会发现以下内容很有用:
<?php
$string = <<<XML
<PrintLetterBarcodeData
uid="725733706873"
name="RAVINDER KUMAR"
gender="M"
yob="1996"
co="S/O KAKA RAM"
house="460A"
street="WARD NO. 6"
lm="NA"
loc="NA"
vtc="Nanyola (292)"
po="Naneola"
dist="Ambala"
state="Haryana"
pc="134003"
/>
XML;
$xml = simplexml_load_string($string);
$attribs = $xml->attributes();
// convert the '$attribs' to an array
foreach($attribs as $key=>$val)
$arrayOfAttribs[(string)$key] = "'".(string)$val."'";
$namesOfColumns = implode(",", array_keys($arrayOfAttribs));
$valuesOfColumns = implode(",", array_values($arrayOfAttribs));
// your database stuff
$query = "INSERT INTO yourtable ($namesOfColumns) VALUES ($valuesOfColumns);";
?>
【讨论】:
推荐阅读:How can I prevent SQL-injection in PHP? @hakre 确实这是一个相当有趣的话题,但我提供的只是一个简单的“如何做”,没有考虑安全性或性能等任何基本因素。 我也许应该降低一点。这里的 PHP 部分场景需要 mysql 字段名验证。这个网站没有很好地介绍它。另一个问题是关于不使用参数化查询,这将使示例更好恕我直言。您是对的,您不需要在答案中提供该信息。这只是我的评论。以上是关于如何将 XML 中的数据插入数据库 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据库表中的一个值和 $_POST 中的另一个值插入另一个数据库表[重复]
如何防止将重复数据插入到值为多个的 SQL Server 表中