Как правильно вставить новую запись?
В таблице два столбца имя, номер. При выполнении ошибок никаких нет, процесс заканчивается:
Process finished with exit code 0
Но собственно никакой записи не добовляется.
def add_num(name, fulnum):
with sqlite3.connect("BasePers.db") as con:
cur = con.cursor()
cur.execute(f"INSERT INTO persons (PersonName, PersonNumber) VALUES ('%{name}%', '%{fulnum}%')")
con.commit()
add_num("Тема", 8981)
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
попробуйте так:
cur.execute("INSERT INTO persons (PersonName, PersonNumber) VALUES (?,?)", (name, fulnum))
UPD: вот протестированный и рабочий пример:
name = "name"
val = 123
with sqlite3.connect(r"c:\temp\TEST.db") as con:
cur = con.cursor()
cur.execute("CREATE TABLE persons (PersonName VARCHAR(100), PersonNumber INTEGER)")
sql = "INSERT INTO persons (PersonName, PersonNumber) VALUES (?, ?)"
cur.execute(sql, (name, val))
con.commit()
проверка:
In [366]: cur.execute("select * from persons")
Out[366]: <sqlite3.Cursor at 0x14e5098b180>
In [367]: list(cur.fetchall())
Out[367]: [('name', 123)]