2017-02-16 3 views
0

Так что я создал простую таблицу:Невозможно вставить значение в SQLite

c.execute('''CREATE TABLE IF NOT EXISTS friendList (name)''') 

Я тогда переменную «Номбр», который содержит строку «Gabriel».

Я тогда попробуйте следующее:

c.execute("INSERT INTO friendList VALUES (nombre);") 

И получите это:

sqlite3.OperationalError: no such column: nombre 

Что я делаю неправильно?

ответ

3

Try:

c = conn.cursor() 
c.execute("INSERT INTO friendList VALUES (?)", (nombre,)) 
conn.commit() <-- important, needed to save transaction 

Поскольку nombre является переменной, вы можете связать его таким образом. You может вставить его непосредственно путем конкатенации, но это открывает вам SQL-инъекции.

+0

Python принимает это без сообщений об ошибках. Когда я беру его и просматриваю базу данных в своем браузере SQL, в базе данных нет записей. –

+1

Вероятно, вам необходимо совершить транзакцию, см. Https://docs.python.org/3/library/sqlite3.html. – Scovetta

+0

Я делал это. Я попробовал обновленную строку кода и теперь работает. –

Смежные вопросы