Sar*_*rge 4 python blob pyodbc
我正在尝试使用 pyodbc 将 blob 数据上传到 ms-sql db。我得到“要执行的第一个参数必须是字符串或 unicode 查询”错误。
代码是
file = pyodbc.Binary(open("some_pdf_file.pdf", "r").read())
cur.execute("INSERT INTO BlobDataForPDF(ObjectID, FileData, Extension) VALUES ('1', " + file + ", '.PDF')")
cur.commit()
Run Code Online (Sandbox Code Playgroud)
第一个参数 ObjectID 作为字符串发送。我没有看到任何问题,但我错过了什么吗?
使用参数化插入:
file = pyodbc.Binary(open("some_pdf_file.pdf", "r").read())
sql = "insert into BlobDataForPDF(ObjectID, FileData, Extension) values (?, ?, ?)"
cur.execute(sql, ('1', file, '.PDF'))
cur.commit()
Run Code Online (Sandbox Code Playgroud)
当前代码正在尝试将二进制数据与您的插入字符串连接起来。使用参数将您的 SQL 字符串与插入的值隔离开来,防止 SQL 注入,如果您使用不同的值多次执行插入,则效率更高。示例用法在这里。
| 归档时间: |
|
| 查看次数: |
9929 次 |
| 最近记录: |