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