【发布时间】:2015-10-07 21:50:20
【问题描述】:
新手在这里尝试从 file.xml 中提取“shoedept or ShoeDept, $50, 30%off special,Top quality design,latitude,longitude”到 phpmyadmin DB。 myTable 看起来很顽固,无法更改,但相同的字段顺序相同,只是名称不同;类型、价格、标题、描述、纬度、经度。
<source>
<id>shoedept</id>
<name>ShoeDept</name>
</source>
<location>
<address>174 Sioux</address>
<zip>48228</zip>
<citycode>usa:mi:detroit</citycode>
<name>Detroit</name>
<state>MI</state>
<country>USA</country>
<latitude>42.4089</latitude>
<longitude>-82.9432</longitude>
</location>
<images/>
<time>1444207824</time>
<paid>No</paid>
<score>1</score>
<user/>
<url>
http://................
</url>
<attributes>
<features>Leather</features>
<men>1</men>
<women>2</women>
<currency>USD</currency>
<fee>No</fee>
<has_pic>No</has_pic>
<price>50</price>
<price_display>$50</price_display>
</attributes>
</element>
<element>
<id>4030773537</id>
<title>
$50 / special
</title>
<body>
Top quality design
</body>
我写这篇声明;
LOAD DATA INFILE "file.xml" INTO TABLE myTable(headline,description.....)
我得到了大量的行,列出了所有不需要的垃圾。我只想要整个块中的一行,字段列为列。当我尝试使用时
ROWS IDENTIFIED BY '<field>';
要将其压缩为一行,它会引发错误。然后我尝试创建一个临时表并将数据强制到 myTable 中,下面没有希望;
LOAD DATA INFILE "file.xml";
UPDATE tmp SET DEFAULT = 'file.xml';
INSERT INTO myTable SELECT * FROM tmp;
非常感谢
【问题讨论】:
-
nitpick:你确实没有有一个'phpmyadmin db'。 phpmyadmin 是一个管理界面。你有一个 mysql 数据库。
-
和
load data infile用于 CSV 数据。你不是给它 csv,而是给它 xml,这就是为什么有一个load xml命令... xml != csv
标签: php mysql xml phpmyadmin