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