我想使用 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_3
和phone_4
在数据库中不是空的,也不是在XML中设置的。
您可以通过使用 XML 解析器(替代引用)解析 php 代码中的 xml 来执行此操作。之后,只需将它们插入数据库即可。