使用sql在另一个表的表中插入字符串

时间:2013-07-30 17:42:29

标签: python sql pyodbc

我需要使用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])

如果文字没有"'等特殊字符,则效果很好。我正在寻找实现这一目标的方式,因为我是这个编程事物的新手

1 个答案:

答案 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攻击。