Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июль 7, 2007 18:58:11

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2182
Репутация: +  36  -
Профиль   Отправить e-mail  

параметры запроса в mysqldb

в общем ф-ция курсора имеет 2 параметра, 2м являются параметры запроса.
Формат самого запроса зависит от MySQLdb.paramstlyle, который описан в http://www.python.org/dev/peps/pep-0249/

в версии 1.2.1 (из debian lenny) этот параметр == format:

'format' ANSI C printf format codes,
e.g. ‘…WHERE name=%s’
вот, собсвенно теперь к проблеме=) как красиво (а не абы как) передать запросу И имена таблиц, по которым идёт выборк, и эти параметры?

c.execute(“SELECT column from %s where name=%s”,(tabl_name, param_name))

такой вот вариант не работает, ибо имя таблицы будет взято в кавычки (тк описаное выше годится ТОЛЬКО для передачи параметров) и запрос будет кривым, если бы paramstyle был “qmark”,то там где параметры можно было б поставить ? и не было б проблем, НО я не нашёл как его менять, тупое MySQLdb.paramstlyle = “qmark” не работает

в общем как сделать ОПТИМАЛЬНО (а не через 5ю точку ;) )так, чтоб имена таблиц и параметры передавались вместе?

есть вариант типа:


query = “SELECT column from %(tabl)s where id=?”%vars()
c.execute(query.replace(“?”, “%s”), (param_name,))



но как-то сильно уж заумно выходит;)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version