关于python:使用Access和pyodbc的INSERT语句中的语法错误

Syntax error in INSERT statement with Access and pyodbc

我很难通过Python使用pyodbc将SQL插入到Access数据库中。 每次尝试都会抛出"无效的语法错误"。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 import pyodbc

 ney = 'data1'
 soy = 'data2'

 MDBA = 'C:/db/dbBase.mdb'; DRVA = '{Microsoft Access Driver (*.mdb)}'; PWDA = 'pw'

 # connect to db
 cona = pyodbc.connect('DRIVER={};DBQ={};PWD={}'.format(DRVA,MDBA,PWDA))
 cura = cona.cursor()
 SQL = ("""insert into [db1](col1, col2) values ('ney', 'soy')""")
 #SQL = ("insert into db1(col1, col2values (?, ?)", ney, soy)

 cura.execute(SQL)
 cona.commit()

我能够做一个SELECT语句,那么INSERT的正确语法是什么?


我只是将你的代码复制并粘贴到IDLE中,并没有给我带来错误。 但是,它还将字面值'ney'和'soy'插入表中。 为了获得这些变量的值,您需要使用参数化查询,如下所示:

1
2
3
sql ="insert into [db1] (col1, col2) values (?, ?)"
params = (ney, soy)  # tuple containing parameter values
cura.execute(sql, params)