Latest posts on параметры запроса в mysqldb topichttp://python.su/forum/topic/985/2007-07-07T18:58:11+03:00Веб-технологии :: Web :: параметры запроса в mysqldb
2007-07-07T18:58:11+03:00slav0nic6492в общем ф-ция курсора имеет 2 параметра, 2м являются параметры запроса.<br/>Формат самого запроса зависит от MySQLdb.paramstlyle, который описан в <a href="http://www.python.org/dev/peps/pep-0249/">http://www.python.org/dev/peps/pep-0249/</a><br/><br/>в версии 1.2.1 (из debian lenny) этот параметр == format:<br/><blockquote>'format' ANSI C printf format codes, <br/> e.g. ‘…WHERE name=%s’</blockquote>вот, собсвенно теперь к проблеме=) как красиво (а не абы как) передать запросу И имена таблиц, по которым идёт выборк, и эти параметры?<br/><br/> c.execute(“SELECT column from %s where name=%s”,(tabl_name, param_name))<br/><br/>такой вот вариант не работает, ибо имя таблицы будет взято в кавычки (тк описаное выше годится ТОЛЬКО для передачи параметров) и запрос будет кривым, если бы paramstyle был “qmark”,то там где параметры можно было б поставить ? и не было б проблем, НО я не нашёл как его менять, тупое MySQLdb.paramstlyle = “qmark” не работает<br/><br/><strong> в общем как сделать ОПТИМАЛЬНО (а не через 5ю точку ;) )так, чтоб имена таблиц и параметры передавались вместе?</strong><br/><br/>есть вариант типа:<br/><br/>…<br/>query = “SELECT column from %(tabl)s where id=?”%vars()<br/>c.execute(query.replace(“?”, “%s”), (param_name,))<br/>…<br/><br/><br/>но как-то сильно уж заумно выходит;)