私は外部のXMLファイルをつかんで、PHPのsimplexml_load_fileで配列に変換しています。私の質問は、後で処理するためにmysqlデータベースにその情報を保存する最善の方法は何でしょうか?私はそれをシリアル化しようとしたが、あなたはそれを行うことはできないと信じていますか?私がノードを取得すると、もはや有効なエラーや何か類似したものが得られなくなります。どんな提案/助け?PHP - データベースのsimplexml_load_fileの値を格納
答えて
XMLファイルがある場合は、XMLを保存して後で処理するのはなぜですか?
serialize()
でシリアル化してからunserialize()
でシリアル化できます。しかし、多くの場合、カラム/テーブル/ etcの方が良いnormalising your dataであるため、データベースの機能を使用してデータを照会することができます。
私はシリアル化を試していないが、私はそれをアンシリアライズするために行くとき、私はそうのようなエラーの束を取得します。警告:アンシリアライズ():私は取得した場合、ノードは、もはや – John
生のXML文字列をTEXTフィールドに格納できます。おそらくmysqlのcompress()関数を使用して領域を節約できます。
私はアレックスの答えをお勧めします、あなたのデータをデータベースの適切なカラム/テーブルに正規化してください。
<itemList>
<item>
<name>test</name>
<value>42</name>
</item>
... etc
</itemList>
表:ITEMLIST
|id|name|value|
|1 |test|42 |
|2 |etc | ... |
私はAPIからフィードを取得しています。これは、ファイル/文字列全体をテーブルにダンプして別の時間に処理できるようにする主な理由です。 Imの処理準備が整うと、XMLデータのフィールドを正規化することができます。 – John
が存在しますxmlファイルを文字列に変換してデータベースに格納すると、それを直列化することをお勧めしますか? – John
シリアル化は、オブジェクトまたは他のデータ型を文字列に書き込むことのみです。だから、文字列があれば、それを直列化する必要はありません。 XML全体を解析して正規化された値を別々のテーブルに格納することができますが、後で処理するためにXMLを保存するだけの目的なら、XML文字列をデータベースに格納するだけです。 – GolezTrol