получить доступ к определенным значениям в таблице в sqlite3 Python 3 и затем обновить его - PullRequest
0 голосов
/ 08 ноября 2018

Я создал таблицу базы данных, которая в основном представляет собой простую базу данных банкоматов, в которой есть записи о некоторых людях с pin в качестве первичного ключа. Теперь мне нужно создать еще один файл, в котором пользователь может ввести свои pin, а затем он проверяет, существует ли pin в базе данных и показывает ли он, сколько денег у него есть, и при вводе суммы для снятия базы данных обновляется с новым значением amount в записи этого человека. Таблица, которую я создал, выглядит так:

import sqlite3
conn = sqlite3.connect('pin.db')
print("opened successfully")

conn.execute('''CREATE TABLE CUSTOMERS
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
AMOUNT INT);''')

print("table created")


conn.execute("INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,AMOUNT) \
      VALUES (1234, 'Paul', 32, 'California', 20000.00 )");

conn.execute("INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,AMOUNT) \
      VALUES (2345, 'Allen', 25, 'Texas', 15000.00 )");

conn.execute("INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,AMOUNT) \
      VALUES (3456, 'Teddy', 23, 'Norway', 20000.00 )");

conn.execute("INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,AMOUNT) \
      VALUES (4567, 'Mark', 25, 'Rich-Mond ', 65000.00 )");

conn.commit()
print ("Records created successfully")

conn.close()

Другой файл будет выглядеть примерно так:

import sqlite3

conn = sqlite3.connect('pin.db')
print ("Opened database successfully")

pin=int(input("enter the 4 digit pin: "))
conn.row_factory = lambda cursor, row: row[0]
c = conn.cursor()
ids = c.execute('SELECT id FROM CUSTOMERS').fetchall()
if pin in ids:
    query= f"SELECT AMOUNT FROM CUSTOMERS WHERE ID=?"
    c.execute(query,(pin))
    print(c.fetchone())
else:
    print("no")

Проблема в том, что я получаю сообщение об ошибке значения как таковое: ValueError: parameters are of unsupported type, я знаю, что решение может быть чем-то очень простым и базовым, но дело в том, что я совершенно новичок в этом вопросе sqlite3 и поэтому не очень хорош с Это. Объяснение очень поможет мне учиться.

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