Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2011 22:36:18

Kixiro
От:
Зарегистрирован: 2009-09-06
Сообщения: 27
Репутация: +  1  -
Профиль   Отправить e-mail  

MySQLdb и экранирование длинных строк в запросе

Пытаюсь добавить поле в таблицу, одно из которых blob/text. В данное поле пытаюсь сохранить код html странички в которой присутствуют практически все знаки и соответсвенно подставить текст страницы в виде
db.execute('insert into allbaist (parent,context) values (0,“%s”)' % x)
где x - текст странички. Не получается, так как надо экранировать символы
Как это проще всего сделать?



Офлайн

#2 Янв. 11, 2011 23:59:39

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

MySQLdb и экранирование длинных строк в запросе

Kixiro, в MySQLdb есть функция escapestring, просто поищите ее, так с кандачка не помню.



Офлайн

#3 Янв. 12, 2011 10:31:40

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

MySQLdb и экранирование длинных строк в запросе

Попробуйте так:

db.execute('insert into allbaist (parent,context) values (0,"%s")' , (x, ))
ЕМНИП данный способ безопасен и экранирование будет выполнено автоматически.



Офлайн

#4 Янв. 13, 2011 20:05:18

Kixiro
От:
Зарегистрирован: 2009-09-06
Сообщения: 27
Репутация: +  1  -
Профиль   Отправить e-mail  

MySQLdb и экранирование длинных строк в запросе

Действительно помогло :) спасибо ziro!



Отредактировано (Янв. 13, 2011 20:06:18)

Офлайн

#5 Сен. 23, 2014 16:30:52

prizrak-pro
Зарегистрирован: 2013-10-09
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb и экранирование длинных строк в запросе

А подскажите.

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 в кавычки, то экранирование происходит?

Отредактировано prizrak-pro (Сен. 23, 2014 16:31:05)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version