pyodbc 参数化查询的语法错误

Syntax error for parameterized query with pyodbc

我是 Python 的新手(习惯于 C#),需要使用 Access 数据库 (.accdb)。

构建 SQL 查询的语法对我来说也有点奇怪。

我有以下内容:

def updateSQL(table,keyField,keyVal,field,newVal):
    sqlCommand = "UPDATE " + table + " SET (?)=(?) WHERE (?)=(?);"
    crsr.execute(sqlCommand, (field, newVal, keyField, keyVal))
    crsr.commit()
    print("Tables update successfully")

但由于某种原因,我收到以下错误:

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement

我已经用声明尝试了一些不同的东西,但我终究无法弄清楚哪里出了问题,有什么想法吗?

'?'标记用于 ,但列名不是值。您永远不想将值放入 SQL,但您需要将列放入。尝试类似的东西:

sql = 'update {} set {}=? where {}=?'.format(table, field, keyField)
cursor.execute(sql, newVal, keyVal)