@SiezurE

Как исправить ошибку с database SQlite в Python?

import sqlite3

class Database:
def __init__(self, db_file):
self.connection = sqlite3.connect(db_file)
self.cursor = self.connection.cursor

def add_check(self, user_id, bill_id):
with self.connection:
self.cursor.execute("INSERT INTO 'check' ('user_id', 'bill_id') VALUES (?,?)", (user_id, bill_id,))

Подскажите, где, что я не так написал, выдает ошибку:
'builtin_function_or_method' object has no attribute 'execute'
  • Вопрос задан
  • 510 просмотров
Решения вопроса 1
retUrn3d
@retUrn3d
Пользователь, просто пользователь...
Попробуйте это решение.
class DataBase:

    def __init__(self, db_file):
        self.conn = sqlite3.connect(db_file)
        self.cur = self.conn.cursor()

    # Аргумент arg принимает только кортежи(tuple), иначе ошибка.
    def add_check(self, arg: tuple):
        self.cur.execute("INSERT INTO check VALUES(?, ?);", arg)
        self.conn.commit()

# Создаем экземпляр класса, с указанием на БД.
db = DataBase('bot_base.db')

# Передаем методу класса add_check кортеж состоящий из user_id и bill_id
db.add_check((user_id, bill_id))

Помещение указанных вами значений в базу данных, произойдет в том порядке, в котором вы их поместите в кортеж.

Например в вашей базе данных имеется таблица в которой есть столбцы name и value, исходя из примера выше, мы передаем кортеж, где первым значением указан user_id, вторым bill_id.
В результате получится такое. name = user_id, value = bill_id.

Думаю разжевал предельно понятно и просто.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы