我有一个像这样的xml文件:
的test.xml
Test some description test.tmp
我喜欢将它导入MySQL表,如'mytable'
CREATE TABLE mytable (plugin varchar(255),title varchar(255),description varchar(255), file varchar(255),install varchar(255),hook varchar(255),phrase varchar(255));
我使用下面的命令
LOAD XML LOCAL INFILE 'test.xml' INTO TABLE mytable(plugin,title,description,file,install,hook,phrase);
它运行成功,但有0行!
查询已成功实施,0行已受影响.
谢谢
包括这一行ROWS IDENTIFIED BY '<plugin>'
.你的查询应该是这样的
LOAD XML LOCAL INFILE "D:\\test.xml" INTO TABLE mytable ROWS IDENTIFIED BY '<plugin>';
看起来你的XML文件形成不正确,所以即使插入了1行; 所有值都不会被提取(保留NULL
).
如下所示做一些改变
创建表结构
CREATE TABLE mytable ( plugin_name varchar(255), title varchar(255), description varchar(255), `file` varchar(255), `install` varchar(255), hook varchar(255), phrase varchar(255));
更改XML文件
<?xml version="1.0" encoding="utf-8" ?> <plugin plugin_name="tree"> <title>Test</title> <description>some description</description> <file>test.tmp</file> <install>![CDATA[ global $test; ]]</install> <hook name="hookname">![CDATA[ global $local; ]]</hook> <phrase key="category">![CDATA[Show categories]]</phrase> </plugin>
现在,如果你使用
LOAD XML LOCAL INFILE "D:\\test.xml" INTO TABLE mytable ROWS IDENTIFIED BY '<plugin>';
所有数据都被提取得很好