我遇到以下错误:
File "sqldata/basetables/places.py", line 24, in update
sqldata.objs.c.execute("UPDATE places SET name='%s', matrix='%s', bans='%s', pop='%s' WHERE name='%s'" % (place.name,place.matrix,place.bans,place.pop,name))
sqlite3.OperationalError: near "bob": syntax error
我在哪里:
>>> place.name
'room'
>>> place.matrix
[['bob', False, False], [False, False, False], [False, False, False]]
>>> place.bans
[]
>>> place.pop
[]
>>> name
'room'
由于某种原因,周围的单引号bob
似乎导致了错误,因为如果我用它替换'bob'
它True
可以工作,但周围的单引号room
不会导致任何错误。纠正此问题的最佳方法是什么?我不能用 替换'bob'
,bob
因为我想要一个字符串,而不是一个对象。
我尝试了此处和此处的建议,但字符串保持不变。我也尝试替换'bob'
为''bob''
, u'''bob'''
, "bob"
, "'bob'"
, "\'bob\'"
. 这一切都给出了语法错误。
从 SQL 查询中删除单引号给出:
File "sqldata/basetables/places.py", line 24, in update
sqldata.objs.c.execute("UPDATE places SET name=%s, matrix=%s, bans=%s, pop=%s WHERE name=%s" % (place.name,place.matrix,place.bans,place.pop,name))
sqlite3.OperationalError: near ",": syntax error