Найти - Пользователи
Полная версия: Спецсимволы в SQL запросе
Начало » Базы данных » Спецсимволы в SQL запросе
1
esergion
Доброго времени.
Python 2.6.6 debian squeeze
Пишу следующее:
    sql="""INSERT INTO demo_users.vpbxes (vpbx_id,extension1,secret1,pin1,extension2,secret2,pin2,is_free,queue,conference,group) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s') ;"""%(vpbx_id,extension1,secret1,pin1,extension2,secret2,pin2,free,queue,conference,group)
    sql=main_db.escape_string(str(sql))
    main_cursor.execute(sql)
    main_db.commit
В итоге:
Traceback (most recent call last):
  File "./demo_users.py", line 37, in <module>
    main_cursor.execute(sql)
  File "/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 166, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 35, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group) VALUES (\\'2\\',\\'1003\\',\\'KgCUC1o^,3jg;0^WF;jnGpPlDFLAB66X\\',\\'30940\\',\\'1' at line 1")

Пароли со спецсимволами (по технике безопасности! sip-подключения) типа KgCUC1o^,3jg;0^WF;jnGpPlDFLAB66X
Подскажите как заставить их вставляться правильно в запрос.
esergion
Мда, вообще от пароля не зависит, убираю поля с паролями из запроса и тоже самое.. в чем же тогда может быть причина
esergion
Ох уже эти апострофы и кавычки..
sql="""INSERT INTO `demo_users`.`vpbxes` (`vpbx_id`,`extension1`,`secret1`,`pin1`,`extension2`,`secret2`,`pin2`,`is_free`,`queue`,`conference`,`group`) VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s') ;"""%(vpbx_id,extension1,secret1,pin1,extension2,secret2,pin2,free,queue,conference,group)
Так работает. Это критично использовать апострофы в запросах?
Shaman
а если в апострофах оставить только `group`?
JOHN_16
esergion
про атаки типа “sql инъекция” слышали? это небольшой намек на то как происходит подстановка значений в запрос
esergion
Конечно слышал, только это просто скриптик формирующий таблички рабочие, данных никаких не вводится.
По поводу апострофов только для group попробую позже
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB