Поддерживает ли модуль MySQLdb подготовленные операторы?

Поддерживает ли MySQLdb подготовленные операторы на стороне сервера? Я не могу понять это из его руководства.


person planetp    schedule 11.03.2010    source источник


Ответы (2)


Проверьте MySQLdb Комментарии к пакету:

«Параметризация» выполняется в MySQLdb путем экранирования строк, а затем слепой интерполяции их в запрос вместо использования API MYSQL_STMT. В результате строки Unicode должны пройти через два промежуточных представления (закодированная строка, экранированная закодированная строка), прежде чем они будут получены базой данных.

Так что ответ таков: нет, это не так.

person Eugene Yarmash    schedule 11.03.2010

У него есть какая-то параметризация, yes.

Даже в этом случае я советую вам переключиться на oursql. Он дает множество преимуществ по сравнению с MySQLdb:

  • oursql имеет реальную параметризацию.
  • oursql позволяет передавать текстовые или двоичные данные в базу данных и выводить их из базы данных, вместо того, чтобы требовать буферизации всего в клиенте.
  • Наш SQL может лениво вставлять строки и лениво извлекать строки.
  • В нашем sql по умолчанию включена поддержка юникода.
  • oursql поддерживает python от 2.4 до 2.7 без каких-либо предупреждений об устаревании в 2.6+ (см. PEP 218) и без полного сбоя в 2.7 (см. PEP 328).
  • oursql распространяется под лицензией BSD.
person nosklo    schedule 11.03.2010
comment
oursql мертвый проект - launchpad.net/oursql перенаправляет на github.com/python-oursql/oursql с последней фиксацией в 2016 году. - person reducing activity; 01.07.2020