如何安全地在Python中使用WHERE ... IN?

时间:2015-05-31 12:23:10

标签: python mysql

我有一个与数据库中的行对应的整数ID列表,我需要获取特定ID集的特定行。我的查询如下:

SELECT id, name FROM locations WHERE ID in (1,4,5,7,8,...)

我可以通过将列表插入到逗号分隔的字符串中来实现这一点,但这对于SQL注入来说是不安全的。有没有办法,使用预准备语句来绑定整数列表?

如果没有,合适的解决方法是检查列表中的每个项目是否为数字,然后才继续查询?

1 个答案:

答案 0 :(得分:0)

据我所知,在mysql中没有办法做到这一点。你可以列出'?'列表按位置列表长度,然后像正常预准备语句一样绑定参数。