1
我想建立的可变参数个数的询问:(!这是默认情况下不显示)从Python的传递可变数量参数的个数到mysql
group_ids = ', '.join(str(Rules[s].value) for s in groups)
cursor.execute("SELECT a, b, c
FROM my_table
WHERE a IN (%(group_ids)s)
;",
{'group_ids': group_ids})
但是,这会导致一个警告: 截断不正确DOUBLE值:'30,12' 只使用第一个值,其余省略。 所以我用这个小黑客现在:
group_ids = ', '.join(str(Rules[s].value) for s in groups)
cursor.execute('\n'.join("SELECT a, b, c",
"FROM my_table",
"WHERE a IN %s" % group_ids
;")
我知道这些都是有效的值(从一个enum来),但我会摆脱即使SQL注入的可能性最远。
对不起,不起作用:mysql.connector.errors.ProgrammingError:处理格式参数失败; Py thon'list'无法转换为MySQL类型 – MKesper 2014-09-26 09:06:23
@MKesper,它应该工作。看到这个:https://asciinema.org/a/12498 – falsetru 2014-09-26 09:29:30
@MKesper,确保你传递了'sql'和'group_ids',一个字符串列表。 – falsetru 2014-09-26 09:33:31