Я создал таблицу базы данных, которая в основном представляет собой простую базу данных банкоматов, в которой есть записи о некоторых людях с 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 и поэтому не очень хорош с Это. Объяснение очень поможет мне учиться.