将 XML 文件插入 SQL 中


insert xml file into sql

我想使用 php 将大型 xml 值插入到 sql 中。

这是 xml 示例:

  <?xml version="1.0" encoding="utf-8" ?> 
<contacts>
<con>
  <id>1</id> 
  <name>user_name</name> 
  <city>city_name</city> 
  <street>street_name</street> 
  <phone1>phone_number1</phone1> 
  <phone2>phone_number2</phone2> 
  <phone3 /> 
  <phone4 /> 
  </con>

  <con>
  <id>2</id> 
  <name>user_name</name> 
  <city>city_name</city> 
  <street>street_name</street> 
  <phone1>phone_number1</phone1> 
  <phone2>phone_number2</phone2> 
  <phone3 /> 
  <phone4 /> 
  </con>
    </contacts>

我像这样制作 SQL,所以我想在其中插入数据:

CREATE TABLE IF NOT EXISTS `contacts` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(250) NOT NULL,
  `city` varchar(250) NOT NULL,
  `street` varchar(250) NOT NULL,
  `phone_1` text NOT NULL,
  `phone_2` text NOT NULL,
  `phone_3` text NOT NULL,
  `phone_4` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1256 AUTO_INCREMENT=1 ;

我可以用 php 做这项工作吗?我该怎么做?

谢谢

是的,您可以使用XML函数xml_parse_into_struct()将XML转换为数组,而不是使用循环将数据插入数据库。

解析XML文件,循环为每个数据构造一个SQL查询,执行查询,输出一些验证,例如查询是否成功...

正如dragon112提到的那样,你想解析PHP代码中的XML。类似的问题已经被提出并回答了。看看这里以获得一些灵感。

祝你好运

首先,phone_3phone_4在数据库中不是空的,也不是在XML中设置的。

您可以通过使用 XML 解析器(替代引用)解析 php 代码中的 xml 来执行此操作。之后,只需将它们插入数据库即可。