我正在制作一個不和諧的機器人。我嘗試使用 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?)?)添加回答
舉報
0/150
提交
取消
