Python SQLITE Update子句未更新
我正试图更新我的数据库,不确定哪里出了问题。测试已经确认,它肯定是通过代码进行解析的,当打印时,所有变量都具有它们应该具有的值,但是出于某种原因,即使在提交之后,也没有进行任何更改。我是否遗漏了一些简单的语法Python SQLITE Update子句未更新,python,sqlite,Python,Sqlite,我正试图更新我的数据库,不确定哪里出了问题。测试已经确认,它肯定是通过代码进行解析的,当打印时,所有变量都具有它们应该具有的值,但是出于某种原因,即使在提交之后,也没有进行任何更改。我是否遗漏了一些简单的语法 c.execute(''' UPDATE Stats SET WinAmount = ? , PickAmount = ? , StarPlayerAmount = ? WHE
c.execute(''' UPDATE Stats SET
WinAmount = ? ,
PickAmount = ? ,
StarPlayerAmount = ?
WHERE MapName IS ? AND BrawlerName IS ? '''
, (NWin , NPick , NStarPlayer ,BattleDetails['event']['map'],winner['brawler']['name']
conn.commit()
编辑:我没有收到任何错误,数据库只是保持原样您对IS语法的使用似乎不正确。IS主要用于与NULL进行比较,而不用于其他类型的比较。请尝试以下版本:
c.execute('''UPDATE Stats SET
WinAmount = ? ,
PickAmount = ? ,
StarPlayerAmount = ?
WHERE MapName = ? AND BrawlerName = ? ''',
(NWin , NPick , NStarPlayer, BattleDetails['event']['map'], winner['brawler']['name']))
conn.commit()
您对IS语法的使用似乎不正确。IS主要用于与NULL进行比较,而不用于其他类型的比较。请尝试以下版本:
c.execute('''UPDATE Stats SET
WinAmount = ? ,
PickAmount = ? ,
StarPlayerAmount = ?
WHERE MapName = ? AND BrawlerName = ? ''',
(NWin , NPick , NStarPlayer, BattleDetails['event']['map'], winner['brawler']['name']))
conn.commit()
感谢您指出这种语法,我对python还比较陌生,而且还在学习这类东西,但不幸的是,这并没有解决问题我没有得到错误,但数据库没有更新fetchall仍然返回[]您确定有匹配项吗?我有一个故障保护,但现在您已经提出了,错误可能在代码的该部分。我去看看能不能弄明白,如果不能,我会问的。谢谢我的failsafe正在更新而不是插入感谢您指出语法,我对python还相当陌生,并且仍在学习这类东西,但不幸的是,这并没有解决问题我没有得到错误,但数据库没有得到更新fetchall仍然返回[]你确定有匹配吗?我确实有一个故障保护,但现在你已经提出了,错误可能在代码的那部分。我去看看能不能弄明白,如果不能,我会问的。谢谢我的故障保险箱没有插入