プロが教えるわが家の防犯対策術!

動画ファイルの中身のバイナリデータをまるごとMYSQLのフィールドに格納したいのですが、方法が分かりません。

現在分かっていることは、データ形式をBLOB型として格納することくらいです。

SQL文から、またはC APIを使って実現する方法を教えてください。よろしくお願い致します。

A 回答 (2件)

BLOB型でOKですね。


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

この回答への補足

早速のご回答ありがとうございます。

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文の中にファイルの中身を取り込む方法はないでしょうか?

補足日時:2007/09/12 13:12
    • good
    • 0

この辺には詳しくないですが、エスケープシーケンスを使わないとだめみたいですよ。



http://dev.mysql.com/doc/refman/5.1/ja/string-sy …
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2007/09/12 17:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!