【发布时间】:2012-03-20 13:00:23
【问题描述】:
我正在使用 python 插件。我使用列表来存储一些值,如下所示:
known_stn.append('1')
known_stn.append('2')
我的查询是
query=("SELECT survey, station FROM stat WHERE stat.station IN (%s) AND station.survey = '2011410'" %known_stn)
WHERE station.station IN (['1', '2']) 发生错误,因为列表包含 [] 括号。
我尝试替换那些括号,但它们没有被替换。
还有其他数据结构可以使用吗?或者出路替换方括号...
【问题讨论】:
-
“Python 插件”没有任何意义。您使用什么来与 SQL 交互?
-
我使用 postgresSQL 作为数据库。和 pyqt4 设计器用于 GUI .....
-
不要自己格式化查询字符串;这要求进行 SQL 注入攻击。在用于执行查询的任何内容中使用内置格式。 (以下答案是正确的,因为您需要先将列表加入字符串。)
-
例如,在任何使用Python Database API的模块中,您应该写
cursor.execute(query, parameters)。