【问题标题】:Syntax error in INSERT statement with Access and pyodbc使用 Access 和 pyodbc 的 INSERT 语句中的语法错误
【发布时间】: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之前没有右括号或空格的语法错误。

标签: python python-2.7 ms-access pyodbc


【解决方案1】:

我只是将您的代码复制并粘贴到 IDLE 中,它没有对我抛出错误。但是,它还将文字值“ney”和“soy”插入到表中。为了获取这些变量的 ,您需要使用参数化查询,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多