提问人:user1411335 提问时间:12/15/2018 更新时间:12/15/2018 访问量:982
转换 python 字符串数组以获取 SQL 列名
Convert python string array for SQL column names
问:
如何转换python数组like以形成SQL语句columns = ['column1', 'column2', 'column3']
"Select column1, column2, column3 from table"
?
我可以在数组上使用连接,但不知道如何摆脱字符串的引号。
答:
2赞
James K. Lowden
12/15/2018
#1
>>> 'select ' + ', '.join([c for c in columns]) + ' from table'
'select column1, column2, column3 from table'
这是你的想法吗?
评论
0赞
user1411335
12/15/2018
是的,不知何故,我相信加入是不够的,但这有效
1赞
timgeb
12/15/2018
@user1411335记住,在像这样将 SQL 语句组合在一起时,字符串可能包含 SQL 注入。最好使用健壮的库。你可以从这里开始。
0赞
James K. Lowden
12/15/2018
@timgeb,没有图书馆可以使上述内容安全、“健壮”或否定。参数化查询仅参数化数据,而不参数化表名或列名。大多数 SQL 客户端库都受到类似的限制。我建议你的警告是错误的,因为不涉及数据,没有建议名称来自用户,并且应用程序在其中硬编码 DBMS 名称是常见的编程实践。
0赞
timgeb
12/15/2018
@JamesK.Lowden,你显然比我更了解这些东西,所以我建议人们在这件事上听听你的意见。
评论
format