パスワードを忘れた? アカウント作成
692044 journal

bravoの日記: PythonでMySQLのBLOBにバイナリファイルをいれたいときは

日記 by bravo
PythonでバイナリファイルをダイレクトにBLOBにいれるときはどうすればいいか...PythonCookbookに書いてあるescape_stringを使う方法はどうもobsoleteらしく、もっと簡潔にかけるようになっている。

とりあえずこんなテーブルでも用意。

mysql> desc bindb;
+---------+------+------+-----+---------+-------+
| Field   | Type | Null | Key | Default | Extra |
+---------+------+------+-----+---------+-------+
| title   | text | YES  |     | NULL    |       |
| content | blob | YES  |     | NULL    |       |
+---------+------+------+-----+---------+-------+

で、入れる

con = MySQLdb.connect(user='scott', passwd='tiger', db='bindb')
cur = con.cursor()
# gzipされたファイルをロード
gz = open('hoge.txt.gz', 'rb').read()
# 文字列フォーマッティングのような感じにinsertする。
cur.execute("insert into bindb values('test', %s)", gz)

ただどうもバイナリデータはmysqldumpで出てくれないとかいろいろ話を聞くので、無くしたくないときはちゃんとしたファイルシステムにいれるほうがイイみたいです。それかuuencodeとかbinasciiとかいろいろやるとよさげ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

※ただしPHPを除く -- あるAdmin

読み込み中...