[SQL] MySQLにバイナリをつっこむ
MySQLにバイナリデータを保存したいときは,BLOB型をレコードに使う.
テキスト型?として扱われるため,保存したいバイナリデータは,文字列としてそのままinsert文に入れてしまう.
ただし,バイナリは,文字列としてクエリにそのまま投げてしまう.(これっていいのかなぁ・・.)
このため,バイト文字としてエスケープしないといけないものがある.
MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.1.1 文字列
私はRubyで作ったので,サクっとエスケープするスクリプトを作った.Ruby/MySQLとか,色々言語によってやりかたはあるでしょう.
f = File::open( "hoge.jpg", "rb" ) bin = f.read escapeStr( bin ) queryStr = "insert into table vales( \"bin\" )" dbh.query( queryStr )
こんな感じでしょうか.