@Frayl

Как исправить ошибку в sqlite?

У меня есть код, который выполняет запросы к sqlite и подключается к ней. Я столкнулся с проблемой, что данные из дб удаляются, после повторного запуска скрипта, как это исправить?

Вот код:

import sqlite3

try:
    with open("users.db", "r") as data:
        data.close()
except FileNotFoundError:
    with open("users.db", "w") as data:
        data.close()

con = sqlite3.connect("users.db")


def create_Table():
    cursor = con.cursor()
    cursor.execute("CREATE TABLE IF NOT EXISTS users (user_name TEXT NOT NULL, user_surname TEXT NOT NULL, user_id INTEGER NOT NULL, date TEXT NOT NULL);")

    del cursor


def exists_User(user_id):
    cursor = con.cursor()
    result = cursor.execute("SELECT * FROM users WHERE user_id = ?", (user_id, ))

    for row in result.fetchall():
        if len(row) > 0:
            return True
        else:
            return False

    del cursor


def create_User(user_id, user_name, user_surname):
    cursor = con.cursor()
    cursor.execute("INSERT INTO users (user_id, user_name, user_surname, date) VALUES (?, ?, ?, ?)", (user_id, user_name, user_surname, datetime.datetime.now().strftime("%d-%m-%Y %H:%M")))

    del cursor


def get_UserDate(user_id):
    cursor = con.cursor()
    result = cursor.execute("SELECT date FROM users WHERE user_id = ?", (user_id, ))

    for row in result.fetchall():
        return row[0]

    del cursor
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
LaRN
@LaRN
Senior Developer
Скорее всего это от того что вы не фиксируете изменения чернз вызов функции
cursor.commit()

И ещё в функциях exists_User и get_UserDate выход происходит до del cursor, но это к заданному вопросу не относится.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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