【发布时间】:2021-11-01 15:26:18
【问题描述】:
我正在为同事制作一个脚本,以便能够从 SQL Server 数据库生成报告。我正在使用 pymssql 来管理与数据库的连接。
我的问题是我希望使用脚本的人能够指定他们想要返回的列,以及他们需要的日期范围。
我正在使用这个 sn-p 代码,但列名不起作用(据我了解,它们被转义,这是问题的一部分)VS 将它们输入。
if len(columns) == 1:
query = "SELECT %s FROM dbo.tblPayments WHERE %s < dbo.tblPayments.fldPayDate AND dbo.tblPayments.fldPayDate > %s;"
else:
query = "SELECT " + ("%s, " * (len(columns) - 1)) + "%s FROM dbo.tblPayments WHERE %s <= dbo.tblPayments.fldPayDate AND dbo.tblPayments.fldPayDate >= %s;"
我看到有人说要使用.format() 的字符串连接,但如果可以避免它们,我不想插入安全风险。有什么我想念的吗?我可以做些什么来确保它的安全?
谢谢
【问题讨论】:
标签: python sql sql-server pymssql