亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

sqlite3.OperationalError:“s”附近:語法錯誤

sqlite3.OperationalError:“s”附近:語法錯誤

呼如林 2023-08-22 16:00:50
我正在制作一個不和諧的機器人。我嘗試使用 SQLite3 數據庫來增加我的機器人的經濟性。但是當我創建專欄時出現錯誤:cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id}, 30, 0, 0, 1, {guild.id})")sqlite3.OperationalError: near "s": syntax error而且,這是代碼:@client.eventasync def on_ready():    cursor.execute("""CREATE TABLE IF NOT EXISTS users (        name TEXT,        id INT,        cash BIGINT,        rep INT,        xp INT,        lvl INT,        server_id INT    )""")    for guild in client.guilds:            for member in guild.members:                if cursor.execute(f"SELECT id FROM users WHERE id = {member.id}").fetchone() is None:                    cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id}, 30, 0, 0, 1, {guild.id})")                else:                    pass        connection.commit()
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

代碼注入錯誤!member考慮一下如果字符串化是會發生什么Foo's Bar。你最終會執行

INSERT?INTO?users?VALUES?('Foo's?Bar...
????????????????????--?^?Syntax?error

我相信

cursor.execute(f"SELECT?id?FROM?users?WHERE?id?=?{member.id}")
cursor.execute(f"INSERT?INTO?users?VALUES?('{member}',?{member.id},?30,?0,?0,?1,?{guild.id})")

應該

cursor.execute("SELECT?id?FROM?users?WHERE?id?=??",?(?member.id,?))
cursor.execute("INSERT?INTO?users?VALUES?(?,??,?30,?0,?0,?1,??)",
???(?str(member),?member.id,?guild.id?)?)


查看完整回答
反對 回復 2023-08-22
  • 1 回答
  • 0 關注
  • 1586 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號