ошибка TypeError: execute expected at most 2 arguments, got 4

Я пытаюсь изучать Базу данных sqlite на python. Однако, выходит ошибка:

cur.execute("INSERT INTO names VALUES(?, ?, ?);", name, age,gender)
TypeError: execute expected at most 2 arguments, got 4

Не сильно понимаю, что не так с аргументами, поэтому попрошу помочь. Вот мой код:

import sqlite3

conn = sqlite3.connect('Lina.db')
cur = conn.cursor()

cur.execute("""CREATE TABLE IF NOT EXISTS names(
   name TEXT,
   age TEXT,
   gender TEXT);
""")
conn.commit()

name = input("Ваше имя: ")
age = input("Ваш возраст: ")
gender = input("Ваш пол: ")

cur.execute("INSERT INTO names VALUES(?, ?, ?);", name, age, gender)
conn.commit()

P.s Попробовал сделать так:

info = (name, age, gender)
cur.execute("INSERT INTO names VALUES(?, ?, ?);", info)

Это работает, но ради изучения мне всё равно нужно знать, как исправлять эту ошибку


Ответы (1 шт):

Автор решения: Sergey Gornostaev

В документации написано, что метод принимает два аргумента - строку запроса и кортеж аргументов

cur.execute("INSERT INTO names VALUES(?, ?, ?);", (name, age, gender))
→ Ссылка