私は、いくつかのクエリを実行し、いくつかのXMLデータをクエリの結果とともに返す、MySQLへのWebインターフェイスを作成しています。現在、クエリが実行されているテーブルには、3つのLONGBLOB列(画像データなどを格納するための列)があります。MySQL 5.0:(整形式の)XML形式のBLOBデータを出力しますか?
しかし、XMLを解析しようとすると、BLOB列の特定の文字に問題が発生します。MySQLはストレートヘキサデータをストリームにダンプしているようですが、これはパーサーが受け入れていません。
16進データを含むMySQL出力の整形式XMLを作成する方法はありますか?私はmysqldump --hex-blob
オプションを見ましたが、テーブルの内容全体を取得するのではなく、テーブルに対してクエリを実行する必要があるので、mysql
プログラムで作業しています。文字列表現の場合はタグのxs:hexBinary
要素、またはそれに類するものであれば問題ありません。
編集:私はPHP 5.2.9で作業しています。この問題の背景は、一種のDiggのようなAPIに複数のHTTPでアクセス可能なエンドポイントを提供することです。 /objects
,/edit
など。この考え方は、複数のプラットフォームにまたがる多数のクライアントアプリケーションが、同じデータセットにアクセスするための共通の基盤としてAPIを使用することができるということです(変更の対象となるデータベースを気にする必要はありません)。
私が保存しているオブジェクトの種類の1つは、(小さな)イメージです。これは、MySQL LONGBLOB型を使用してデータベースで直接行いたいものです。 (私はMySQLバックエンドデータベースでAPIを動作させる責任しか負いませんので、答えはDB型、言語、ユーティリティをgivensとして取ることができます)。基本的に私が探しているのは、他の混合型データ(主に文字列)と同じXML文書内の要求元のアプリケーションに送信します。
編集:私はmysql --xml
コマンドラインプログラムとPHP passthru
機能の組み合わせを使用してMySQLのうち、XMLを取得しています。これは私がそれを開発していた時に私が望んでいたことを達成する最も簡単な方法でした。そこには良い方法がありますか? MySQLに依存するのではなく、MySQLフィールドからPHPでXMLを構築するべきですか?もしそうなら、XMLで画像データを簡単に送ることができますか?
を、私はあなたがMySQLのから直接XMLを取得している印象を受けました、ではなくXMLからフィールドを取得よりも、とPHPでのXMLの構築それは事実ですか?何らかの擬似コードや何かを提供できますか、問題の原因となっているXMLのサンプルですか? *ディスクにファイルを保存し、その名前をDBに保存することを検討していますか?基本的なアイデアは同じですが、イメージデータを取得すると同じです。 –