相关疑难解决方法(0)

sql查询中的python列表作为参数

我有一个python列表,比如l

l = [1,5,8]
Run Code Online (Sandbox Code Playgroud)

我想编写一个sql查询来获取列表中所有元素的数据

select name from students where id = |IN THE LIST l|
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点?

python sql

106
推荐指数
8
解决办法
9万
查看次数

在python MySQLDB IN子句中使用列表

我知道如何将列表映射到字符串:

foostring = ",".join( map(str, list_of_ids) )
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用以下内容将该字符串转换为IN子句:

cursor.execute("DELETE FROM foo.bar WHERE baz IN ('%s')" % (foostring))
Run Code Online (Sandbox Code Playgroud)

我需要的是使用MySQLDB安全地完成同样的事情(避免SQL注入).在上面的示例中,因为foostring不作为参数传递来执行,所以它很容易受到攻击.我还必须在mysql库之外引用并转义.

(有一个相关的SO问题,但那里列出的答案要么对MySQLDB不起作用,要么易受SQL注入攻击.)

python mysql

75
推荐指数
2
解决办法
3万
查看次数

标签 统计

python ×2

mysql ×1

sql ×1