kan3k1k3n
@kan3k1k3n

Как сделать, чтобы данные, которые я ввожу с клавиатуры, вводились в базу данных?

вот мой код:
import sqlite3

conn = sqlite3.connect("baza_podobin1.db")
cursor = conn.cursor()

cursor.execute("""CREATE TABLE telephone_book
                 (surname TEXT,
                 name TEXT,
                 patronymic TEXT,
                 number_phone INTEGER)
               """)
surname = str(input())
name = str(input())
patronymic = str(input())
number = str(input())
users = [(surname), (name), (patronymic), (number)]
conn.commit()
cursor.executemany("INSERT INTO telephone_book VALUES(?, ?, ?, ?);", users)
conn.commit()

но при компиляции вылезает ошибка: cursor.executemany("INSERT INTO telephone_book VALUES(?, ?, ?, ?);", users)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 4, and there are 6 supplied.
хотя я вводил только 4 строки, а не 6: 63e25012bcc1c395592424.png
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Вместо
users = [(surname), (name), (patronymic), (number)]


users = [(surname, name, patronymic, number)]
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
axifive
@axifive
Software Engineer
Потому что вы неверно формируете список пользователей.
Нужно составлять список кортежей для отдельного пользователя, а не для каждого поля
users = [(surname, name, patronymic, number)]
Так можно отправлять сразу 2 и более пользователей
users = [
  (surname, name, patronymic, number), 
  (surname, name, patronymic, number)
]

Для одного можно без списка просто передать отдельно каждое поле
cursor.executemany("INSERT INTO telephone_book VALUES(?, ?, ?, ?);", surname, name, patronymic, number)
Ответ написан
Комментировать
nnnLik
@nnnLik
Capybara god
cursor.execute("INSERT INTO telephone_book (surname, name, patronymic, number_phone) VALUES (?,?,?,?)", (surname, name, patronymic, number))

conn.commit()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы