0

xmlデータフィードをmysqlにアップロードしようとしているので、phpプログラムでデータベースを使用できます。私が抱えている問題は、通常、フィールドを作成してフィードをインポートすることです。しかし、私が今持っているフィードは少し奇妙です。

<name>test</name>
<address>test address</address>
<phone>251447</phone>
</phone_count>
<pets>cat</pets>
</pet_count>
<images>
  <image>1.jpg</image>
  <image>2.jpg</image>
  <image>4.jpg</image>
  <image>16.jpg</image>
</images>

</phone_count> </pet_count>これらのフィールドには終了タグしかないため、フィールドを作成する方法を教えてもらえますか。

画像ごとにフィールドを作成するにはどうすればよいですか?サブセットにデータを挿入していないためです。

を使用してデータを読み込もうとしています

LOAD DATA LOCAL INFILE '/tmp/xml/data.xml'
INTO TABLE person_data
4

1 に答える 1

1

入力 XML ファイルが壊れています。対応する開始タグのない終了タグはありません。この XML フローの作成者は、おそらく<phone_count/>and <pet_count/>(スラッシュの位置に注意してください) を意味していました。この構文は (eg) と同じです<pet_count></pet_count>

このフローのインポート方法についてですがLOAD DATA INFILE、メインエンティティ(「連絡先」のようなものだと思います)と画像の間には1対多の関係があるため、これを使用することはできません。理想的には、データベースには と のような 2 つのテーブルがありcontactimage一度LOAD DATA INFILEに 1 つのテーブルにインポートできます。

このファイルを PHP でプログラム的に解析することをお勧めします。

よく考えてみると、特定の連絡先に対して最大で 4 つの画像がある場合、4 つの , ...,フィールドを持つcontactテーブルを想像できますが、それは良い習慣とは言えません。image1image4

于 2013-03-19T14:42:30.090 に答える