バイナリデータを含む文字列オブジェクトをMySQLblob列に挿入したいと思います。ただし、MySQL構文エラーが発生し続けます。
デバッグ用に小さなスクリプトを作成しました。
import MySQLdb
import array
import random
conn = MySQLdb.connect(host="localhost", user="u", passwd="p", db="cheese")
cur = conn.cursor()
a = array.array('f')
for n in range(1,5):
a.append(random.random())
bd = a.tostring()
print type(bd) # gives str
query = '''INSERT INTO cheese (data) VALUES (%s)''' % bd
cur.execute(query)
結果(毎回ではありません...)
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '?fJ\x95<=
\xad9>\xf3\xec\xe5>)' at line 1")
問題は明らかに、MySQLが好まないバイナリデータの特定の文字に要約されます。バイナリデータをMySQLデータベースに入れるフェイルセーフな方法はありますか?