Форум сайта python.su
0
исправьте пожалуйста синтаксис
import sqlite3 con = sqlite3.connect("tdb.db") c = con.cursor() c.execute('''create table bug (id integer primary key, debeti, krediti); insert into bug values ('555','BUY','jhg');''') con.commit() con.close()
Отредактировано gshalx (Июнь 25, 2014 15:57:41)
Офлайн
221
gshalx
1 sql команда в 1 execute методе
Офлайн
88
Там ещё косяк с типами был.
Офлайн
0
c.execute('''create table bug (id integer primary key, debeti, krediti)''') c.execute('''insert into bug values ('1','BUY','jhg');''')
Офлайн
0
gshalx
вместо BUY хочу вставить переменную
c.execute('''insert into bug values ('1','{}','jhg');'''.format(variable))
Отредактировано d54wvzc+i5zirs (Июнь 25, 2014 19:03:06)
Офлайн
7
Метод подстановки параметров с помощью .format() (или оператор %) лучше не использовать при работе с БД.
Заместо этого воспользуйтесь встроенным в DB-API функционалом для подстановки аргументов.
Это позволит избежать атаки типа SQL-injection. В данном примере Вам это может быть и не пригодится, но на будущее полезно знать
Вот так:
c.execute("insert into bug values ('1', ?, 'jhg')", (variable,))
c.execute("insert into bug values ('1', :var, 'jhg')", {"var": variable})
Отредактировано john123 (Июнь 25, 2014 21:47:34)
Офлайн
0
john123
В идеале вообще лучше всего использовать ORM
Офлайн