いくつかのクエリを実行し、クエリの結果を含む XML データを返す MySQL への Web インターフェイスを作成しています。現在、クエリが実行されているテーブルには 3 つの LONGBLOB 列があります (画像データなどを格納するため)。
ただし、XML を解析しようとすると、BLOB 列の特定の文字で問題が発生します。MySQL が単純な 16 進データをストリームにダンプしているように見えますが、これはパーサーによって受け入れられません。
16 進データを含む整形式の XML を MySQL に出力させる方法はありますか? mysqldump --hex-blob
オプションを見ましたがmysql
、テーブル全体の内容を取得するだけでなく、テーブルに対してクエリを実行する必要があるため、プログラムを使用しています。文字列表現、タグxs:hexBinary
内の要素、または同様のもので問題ありません。<field>
編集: PHP 5.2.9 で作業しています。/objects
質問の背景は、HTTP でアクセス可能な複数のエンドポイント (例: 、など) を備えた一種の Digg のような API を提供すること/edit
です。これは、複数のプラットフォームにまたがる多くのクライアント アプリケーションが、API を共通の基盤として使用して、同じデータセットにアクセスする際に、それを支えるデータベース (変更される可能性がある) を気にする必要がないという考え方です。
私が格納しているオブジェクト タイプの 1 つは (小さい) 画像であり、MySQL LONGBLOB タイプを使用してデータベースに直接格納したいと考えています。(私は、MySQL バックエンド データベースで API を機能させることのみを担当しているため、DB の種類、言語、およびユーティリティを与えられたものとして回答することができます。) 基本的に私が探しているのは、画像を返す方法を見つけることです他の混合型データ (ほとんどの場合文字列) と同じ XML ドキュメント内の要求側アプリケーションに。
編集:mysql --xml
コマンドライン プログラムと PHPpassthru
関数の組み合わせを使用して、MySQL から XML を取得しています。これは、私が開発していたときに私が望んでいたことを成し遂げるための最も簡単な方法でした。より良い方法はありますか?MySQL に依存するのではなく、MySQL フィールドから PHP で XML を構築する必要がありますか? もしそうなら、XML での画像データの送信はより簡単になりますか?