【发布时间】:2013-05-30 22:35:07
【问题描述】:
我遇到以下错误:
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',因为我想要一个字符串,而不是一个对象。
我尝试了找到here 和here 的建议,但字符串保持不变。我还尝试将'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
【问题讨论】: