Не выводится бд sqlite3
Пытаюсь освоиться в sqlite, но вот не могу вывести свою переменную. В чем может быть проблема? Код:
import sqlite3
import random
chars = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
def insert_payid():
payid = ''.join(random.choice(chars) for _ in range(15)) # генерируем сам код, который состоит из 15 символов
gtavgen_tokens = sqlite3.connect('gtavgen_tokens')
sql = gtavgen_tokens.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS gtavtokens (gtavtokens TEXT)""")
gtavgen_tokens.commit()
payid = ''.join(random.choice(chars) for _ in range(15)) #отладка
sql.execute(f"INSERT INTO gtavtokens VALUES (?)", (payid))
gtavgen_tokens.commit()
#gtavgen_tokens.close()
print("Успешно!")
for value in sql.execute("SELECT * FROM gtavtokens"):
print(value)
gtavgen_tokens.close()
Ответы (1 шт):
Вам необходимо вызвать саму функцию
insert_payid(), сделать это можно дописав в конце вашего кодаinsert_payid()
Также при запуске вашего кода происходит ошибка
Incorrect number of bindings supplied. The current statement uses 1, and there are 15 supplied., в которой говорится, что вы создали одну ячейку а пытаетесь вставить 15 значений в несуществующие ячейки( примерно так )
Чтобы обойти ошибку
Incorrect number of bindings supplied. The current statement uses 1, and there are 15 supplied., вам необходимо на11 строкепослеpayidдописать запятую в итоге должно получится так:(payid,))#<---- сюда поставил запятую
Полностью весь рабочий код:
import sqlite3
import random
chars = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
def insert_payid():
payid = ''.join(random.choice(chars) for _ in range(15)) # генерируем сам код, который состоит из 15 символов
gtavgen_tokens = sqlite3.connect('gtavgen_tokens')
sql = gtavgen_tokens.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS gtavtokens (gtavtokens TEXT)""")
gtavgen_tokens.commit()
payid = ''.join(random.choice(chars) for _ in range(15)) #отладка
sql.execute(f"INSERT INTO gtavtokens VALUES (?)", (payid,))
gtavgen_tokens.commit()
#gtavgen_tokens.close()
print("Успешно!")
for value in sql.execute("SELECT * FROM gtavtokens"):
print(value)
gtavgen_tokens.close()
insert_payid()