Выходит ошибка с базой данных скулайт
У меня есть код скулайт и когда я запускаю бота выходит ошибка помогите Сам код:
@bot.event
async def on_ready():
cursor.execute("""CREATE TABLE IF NOT EXISTS users (name TEXT, id INT, cash BIGINT, rep INT, lvl INT, server_id INT, case_money INT)""")
#создание магазина (одна строчка ниже)
cursor.execute("""CREATE TABLE IF NOT EXISTS shop (role_id INT, id INT, cost BIGINT)""")
for guild in bot.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}, 0, 0, 1, {guild.id}, 1)")
else:
pass
connection.commit()
print('bot connected')
Ошибка:
cursor.execute(f"INSERT INTO users VALUES ('{member}', {member.id}, 0, 0, 1, {guild.id}, 1)")
sqlite3.OperationalError: near "m": syntax error
Ответы (1 шт):
Автор решения: zrx
→ Ссылка
Вероятно, в нике пользователя member есть символ ', поэтому возникает ошибка синтаксиса.
Попробуйте так:
@bot.event
async def on_ready():
cursor.execute("""CREATE TABLE IF NOT EXISTS users (name TEXT, id INT, cash BIGINT, rep INT, lvl INT, server_id INT, case_money INT)""")
cursor.execute("""CREATE TABLE IF NOT EXISTS shop (role_id INT, id INT, cost BIGINT)""")
for guild in bot.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 ("{str(member).replace("'", "")}", {member.id}, 0, 0, 1, {guild.id}, 1)""")
else:
pass
connection.commit()
print('bot connected')