我需要使用python将列表中的值插入到表中 两个名单是:
A = [(1,2,Don't Use), (2,4, None), (3,None, Need "Access")
我尝试使用pyodbc和sql命令。
sql = "INSERT INTO New_Table(SL, ID, text)
VALUES ('%s', '%s', '%s)" % (A[i][0], A[i][1], A[i][2])
如果文字没有"
或'
等特殊字符,则效果很好。我正在寻找实现这一目标的方式,因为我是这个编程事物的新手
答案 0 :(得分:2)
这里不需要单引号。 pyodbc
模块将为您处理任何报价。只需使用适当的占位符(?
),并将参数元组作为第二个参数传递给.execute()
。例如:
import pyodbc
cnxn = pyodbc.connect('your connection string')
cursor = cnxn.cursor()
cursor.execute("""INSERT INTO New_Table(SL, ID, text)
VALUES (?,?,?);""", (A[i][0], A[i][1], A[i][2]))
cursor.close()
cnxn.close()
正如评论中所提到的,如果你改为使用字符串插值来形成你的查询,你可以打开你的应用程序直至SQL-Injection攻击。