Функция Python для вставки данных с запросом SQL - PullRequest
0 голосов
/ 01 февраля 2020

Я получаю приведенную ниже ошибку, хотя синтаксис SQL кажется правильным. Пожалуйста, помогите.

def create_table(self, **kwargs):
    query = "CREATE TABLE IF NOT EXISTS {} ("
    comma = r', '
    for key, value in kwargs.items():
        if key != 'table_name':
            query = query + key + ' ' + value + comma
    query = query.format(kwargs['table_name']).rstrip(' ,') + ")"
    print(query)
    return self.cursor.execute(query)

def insert_values(self, *args):
    query = r"INSERT INTO {} VALUES ("
    comma = r','
    for arg in args:
        if arg != args[0]:
            if type(arg) == str:
                query = query + "'" + arg + "'" + comma
            else:
                query = query + str(arg) + comma
    query = query.format(args[0]).rstrip(" ,") + ")"
    print(query)
    return self.cursor.execute(query)

db.create_table(table_name='store', item='TEXT', quantity='INTEGER', price='REAL')
db.insert_values('store', 'wine glass', 8, 10.5)

Вывод

# CREATE TABLE IF NOT EXISTS store (item TEXT, quantity INTEGER, price REAL)

# INSERT INTO store VALUES ('wine glass',8,10.5)

sqlite3.OperationalError: в хранилище таблиц есть 1 столбец, но предоставлено 3 значения

1 Ответ

0 голосов
/ 01 февраля 2020

Решено

Парфе вы как-то правы. Я удалял локальную базу данных, которую делал мой класс каждый раз, когда запускал код, и перезапускал каждое действие. Методы работают, я просто не вижу фактического результата.

полный код здесь: https://github.com/BackstageBones/Python-Object-Oriented-Programming/blob/tkinter_app/Desktop%20Database%20Application/database.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...