由字段

时间:2017-04-17 23:02:01

标签: python sql database ms-access

我目前正在使用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”所以我不认为这将是一个类型不匹配,任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

我最好的猜测是money是一个保留字。尝试使用:

. . .
[money] = ?