2017-01-07 5 views
0

ローカルデータベースを使用していて、画像をPhoto VARBINARY(20000)列に挿入しようとしています。WAMPサーバーを使用するLOAD_FILEのパス構文

LOAD_FILEに使用する必要があるパスは何ですか?

INSERT INTO ImageTable(PHOTO) VALUES(LOAD_FILE('E:/wamp64/bin/mysql/mysql5.7.14/data/test.jpg')); 

私は何を使用していますか?これは、テーブルにNULLを入力します。 MySQLもこのパスの下にあります。パスは何かに相対的でなければならないのですか?私はコマンドラインを使用しています。

+1

データベースにファイルを保存しないでください。 http://stackoverflow.com/a/41235395/267540 – e4c5

+0

ファイルが見つかったかどうかエラーを出力しますか?そうでない場合、MySQLはファイルを正しく解釈し、ファイルの内容を調べなければなりません。 – davejal

+0

私は存在しないファイルを読み込もうとしましたが、とにかくエラーが出ません。 @ e4c5:私は 'data:image/jpeg; base64'でもできる文字列を持っていますが、コマンドラインで挿入するには長すぎます。それについてのヒント? – sandboxj

答えて

1

実際にイメージを使用している場合、Varcharは正しいタイプではありません。代わりにBLOBを使用する必要があります。これは、それをカバーする必要があります

INSERT INTO ImageTable(PHOTO) VALUES(1,LOAD_FILE('E:/wamp64/bin/mysql/mysql5.7.14/data/test.jpg'));

検索さらにBLOBLONGBLOB使用するイメージのため。

+0

申し訳ありませんが、私の間違いです。 VARCHARではなくVARBINARY(20000)のタイプです。 :(私はメインポストでそれを修正しました – sandboxj

+0

私が書いたコードは助けてくださいと私は一度同じ問題を抱えていた、私は画像パスを見つけるためにvarcharを使用していた。 。:) – Pelicer

+0

BLOBがpathの文字列を受け入れることを覚えておいてください。 – Pelicer

0

私は--secure-file-privを無効にして動作しました。しかし、tahtのエラーメッセージが表示されなかったので、それが問題かどうかは不明です。

関連する問題