2

如果有人能告诉我是否可以在oursql用于与 MySQL 数据库交互的 python 模块中使用命名占位符进行参数化查询,我将不胜感激。

例如,我尝试了一种可以与 sqlite3 一起使用的查询

c.execute('''select * from records where id=:id''', {"id": 2})

那没起效。我在语法中得到 ProgrammingError。我想知道是否有另一种方法可以做到这一点oursql

如果不可能,oursql您是否知道另一个可用于与 MySQL 数据库交互的 python 模块,该模块允许使用命名占位符进行参数化查询。

谢谢您的帮助。

4

1 回答 1

4

oursql 文档说它使用qmark 表示法,我认为它与这种格式格式不兼容。您正在寻找支持“pyformat”的数据库 API。(请参阅“paramstyle”下的DB API 规范。)

我的经验是使用MySQLdb,它确实支持“pyformat”参数样式,您可以在其中编写查询:

c.execute("""SELECT * FROM records WHERE id = %(id)s""", {"id": 2})
于 2012-06-11T19:06:11.913 回答