• ベストアンサー

MYSQLで、ファイルを格納する方法を教えてください。

動画ファイルの中身のバイナリデータをまるごとMYSQLのフィールドに格納したいのですが、方法が分かりません。 現在分かっていることは、データ形式をBLOB型として格納することくらいです。 SQL文から、またはC APIを使って実現する方法を教えてください。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

BLOB型でOKですね。 普通にファイルをバイナリで読込んでSQLを発行すれば良いだけだと思いますが。 INSERT INTO hoge VALUES ('バイナリデータ')

fuu-sh
質問者

補足

早速のご回答ありがとうございます。 INSERT INTO hoge VALUES ('バイナリデータ') この場合、バイナリデータを指定するためには (1)バイナリデータを直接書き込むか、 INSERT INTO hoge VALUES ('m.s/zpeor');        //バイナリデータを直接記述 (2)Cプログラム上であれば、配列にコピーして、配列を指定する char buf[] = "ファイルからバイナリデータを読み込み" mysql_real_query(&mysql, INSERT INTO hoge VALUES (buf);); の2通りの方法を考えました。 しかし、 (1)は非常に手間がかかりますし、 (2)は大きなバイナリデータを扱う場合、メモリオーバーフローが起こる可能性があると思います。 INSERT INTO hoge VALUES ('test.aviの中身') のように、SQL文の中にファイルの中身を取り込む方法はないでしょうか?

その他の回答 (1)

回答No.2

この辺には詳しくないですが、エスケープシーケンスを使わないとだめみたいですよ。 http://dev.mysql.com/doc/refman/5.1/ja/string-syntax.html

fuu-sh
質問者

お礼

回答ありがとうございます。 エスケープは使用していなかったので、使用するように書き換えました。 どうもありがとうございました。

関連するQ&A