Kixiro
Янв. 11, 2011 22:36:18
Пытаюсь добавить поле в таблицу, одно из которых blob/text. В данное поле пытаюсь сохранить код html странички в которой присутствуют практически все знаки и соответсвенно подставить текст страницы в виде
db.execute('insert into allbaist (parent,context) values (0,“%s”)' % x)
где x - текст странички. Не получается, так как надо экранировать символы
Как это проще всего сделать?
regall
Янв. 11, 2011 23:59:39
Kixiro, в MySQLdb есть функция escapestring, просто поищите ее, так с кандачка не помню.
ziro
Янв. 12, 2011 10:31:40
Попробуйте так:
db.execute('insert into allbaist (parent,context) values (0,"%s")' , (x, ))
ЕМНИП данный способ безопасен и экранирование будет выполнено автоматически.
Kixiro
Янв. 13, 2011 20:05:18
Действительно помогло :) спасибо ziro!
prizrak-pro
Сен. 23, 2014 16:30:52
А подскажите.
1.1. db.execute('insert into allbaist (parent,context) values (0,“%s”)' , (x, ))
1.2. db.execute(“”“insert into allbaist (parent,context) values (0,'%s')”“” , (x, ))
В чем разница.
2. А если писать так:
n - это int
x- str
db.execute('insert into allbaist (parent,context) values (%s,%s)' , (x, n))
db.execute('insert into allbaist (parent,context) values (%s,%s)' % (x, n))
Есть отличие.
3. И если в верхних примерах не брать %s в кавычки, то экранирование происходит?