Discord.py (table user has 1 columns but 6 values were supplied)
Вылазит ошибка во время запуска кода. Пытался поставить (?,?,?,?,?,?), ({member.id}', '{member}', 0, 0, 1, 0) - Не помогло. Убирал ссылку на файл подключения - Не помогло. Перепробывал уже много способ, всё напрасно, может кто нибудь сталкивался, и сможет помочь?
connect=sqlite3.connect('discord.db')
cursor=connect.cursor()
@bot.event
async def on_ready():
cursor.execute("""CREATE TABLE IF NOT EXISTS user (
"id" INT,
"name" TEXT,
"cash" BIGINT,
"lvl" INT,
"rank" INT,
"runes" INT
)""")
connect.commit()
print('Bot Ready')
for guild in bot.guilds:
for member in guild.members:
if cursor.execute(f"SELECT id FROM user WHERE id={member.id}").fetchone() == None:
cursor.execute(f"INSERT INTO user VALUES('{member.id}', '{member}', 0, 0, 1, 0)")
connect.commit()
else:
pass
connect.commit()
Сама ошибка:
Traceback (most recent call last):
File "D:\APython\lib\site-packages\discord\client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "D:\APython\Code\DforriaMG\main.py", line 28, in on_ready
cursor.execute(f"INSERT INTO user VALUES('{member.id}', '{member}', 0, 0, 1, 0)")
sqlite3.OperationalError: table user has 1 columns but 6 values were supplied
Ответы (1 шт):
Автор решения: RAINGM
→ Ссылка
В строке:
cursor.execute(f"INSERT INTO user VALUES('{member.id}', '{member}', 0, 0, 1, 0)")
Колонка id у вас типа int, значит вводить нужно int, а вы ставите скобки, тем самым вставляете значение как строку.
cursor.execute(f"INSERT INTO user VALUES({member.id}, '{member}', 0, 0, 1, 0)")