我尝试使用 .format() 和二进制内容构建一个 sql 查询字符串(注入没有问题)。最小示例需要相同路径中的示例图像。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
try:
con = lite.connect(':memory:')
cur = con.cursor()
binary = lite.Binary(open("woman.jpg", "rb").read())
cur.execute("CREATE TABLE 'Images' ('Data' BLOB)")
cur.execute("INSERT INTO Images(Data) VALUES (?)", (binary,) )
query = "INSERT INTO Images(Data) VALUES ({0})".format(binary)
cur.execute(query) # <- doesn't work obviously
con.commit()
except lite.Error, e:
if con:
con.rollback()
print "Error %s:" % e.args[0]
sys.exit(1)
finally:
if con:
con.close()
就像来自http://zetcode.com/db/sqlitepythontutorial/但带有 .format() 查询生成的插入图像示例
有没有办法用 .format() 实现这一点?我想使用一致的方式将数据插入数据库。
谢谢你。