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) |