我用谷歌搜索并搜索了这个网站,但没有具体的内容出现,也无法让这个工作。这是代码:
binData = ''.join(map(lambda x: chr(x % 256), attach.attcoll))
sql_stmt = """INSERT INTO attachments (attno,filename,fileextension,projNo,procNo,wpattachment) \
VALUES ('%s','%s','%s','%s','%s','%s') ON DUPLICATE KEY UPDATE filename='%s',fileextension='%s'""", attach.attno,\
attach.filename,attach.fileextension,attach.projNo,attach.procNo,binData,attach.filename,attach.fileextension
try:
cursor.execute(MySQLdb.escape_string(sql_stmt))
conn.commit()
attach.attcoll是来自客户端的SQLite blob和java代码的JSON数据。然后我想用MySQLdb将binData写入MySQL,但是继续得到一个TypeError,返回代码为500.关于如何解决这个问题的任何想法。我想将binData存储到MySQL blob中。
答案 0 :(得分:1)
这里有一堆东西:
binData = ''.join(map(lambda x: chr(x % 256), attach.attcoll))
sql_stmt = """INSERT INTO attachments (attno,filename,fileextension,projNo,procNo,wpattachment)
VALUES (%s,%s,%s,%s,%s,%s) ON DUPLICATE KEY UPDATE filename=%s,fileextension=%s"""
params = (attach.attno,attach.filename,attach.fileextension,attach.projNo,attach.procNo,binData,attach.filename,attach.fileextension)
cursor.execute(sql_stmt, params)
conn.commit()
摘要:
cursor.execute()
表示光标将为您转义。'%s'
,MySQLdb也会这样做。conn.commit()
的原因,如果您没有使用事务引擎,则没有必要。