我目前正在使用python和pypyodbc与Microsoft访问一起创建和使用数据库,我偶然发现了这个错误,我无法弄明白
cursor.execute('''UPDATE user_table
SET weapon1_id = ?,
weapon2_id = ?,
aid1_id = ?,
aid2_id = ?,
armour_id = ?,
misc1_id = ?,
misc2_id = ?,
achievements = ?,
user_level = ?,
game_level = ?,
xp = ?,
money = ?
WHERE ID = ?''',
[current_user.inventory['weapons'][0].id,
current_user.inventory['weapons'][1].id,
1,1,1,1,1,
current_user.ach,
current_user.level,
current_user.game_level,
current_user.xp,
current_user.money,
user_id])
这是我的程序的UPDATE语句,只要它在代码中达到这一点,它就会给我这个错误
raise ProgrammingError(state,err_text)
pypyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft
Access Driver] Syntax error in UPDATE statement.')
搞砸了之后,我发现它是由“current_user.money”值引起的,所以任何时候我都会删除该值以及“money =?”代码运行正常,但我不知道为什么会发生这种情况,我确实在创建连接字符串后在我的表中创建了money字段,这可能是问题吗?该字段也是一个数字,因此是“current_user.money”所以我不认为这将是一个类型不匹配,任何帮助将不胜感激
答案 0 :(得分:1)
我最好的猜测是money
是一个保留字。尝试使用:
. . .
[money] = ?