-1

我需要将列表中的值插入到带有 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])

当文本没有特殊字符(如"or )时效果很好'。我正在寻找实现这一目标的方法,因为我是这个编程的新手

4

1 回答 1

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 注入攻击。

于 2013-07-30T17:49:53.313 回答