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