次のエラーが発生します。
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