使用 Access 和 pyodbc 的 INSERT 语句中的语法错误
Posted
技术标签:
【中文标题】使用 Access 和 pyodbc 的 INSERT 语句中的语法错误【英文标题】:Syntax error in INSERT statement with Access and pyodbc 【发布时间】:2016-12-01 05:42:54 【问题描述】:我很难通过 Python 使用 pyodbc 将 SQL 插入到 Access 数据库中。每次尝试都会引发“无效语法错误”。
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 的正确语法是什么?
【问题讨论】:
注释掉的SQL是values
之前没有右括号或空格的语法错误。
【参考方案1】:
我只是将您的代码复制并粘贴到 IDLE 中,它没有对我抛出错误。但是,它还将文字值“ney”和“soy”插入到表中。为了获取这些变量的 值,您需要使用参数化查询,如下所示:
sql = "insert into [db1] (col1, col2) values (?, ?)"
params = (ney, soy) # tuple containing parameter values
cura.execute(sql, params)
【讨论】:
以上是关于使用 Access 和 pyodbc 的 INSERT 语句中的语法错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pyodbc 获取 Access 数据库特定字段的数据类型?
使用 Pyodbc 在 MS Access 表中写入新行的问题
使用 pyodbc 将带日期的数据上传到 MS Access 数据库