![](/img/trans.png)
[英]Using cursor.execute arguments in pymssql with IN sql statement
[英]How can I pass parameters to `cursor.execute` in `pymssql`?
我正在通过pymssql
库连接到sql server db。 而且我正在尝试使用cursor.execute(sql, params)
来执行查询。
sql = """
SELECT
MIN(myDate)
FROM
%s
"""
上面定义了sql语句。 它只是从表中选择最小日期值。
当我运行以下代码以传递参数时:
cursor.execute(sql, 'Daily')
我收到此错误pymssql.ProgrammingError: (102, b"Incorrect syntax near 'Daily'.DB-Lib error message 20018, severity 15:\\nGeneral SQL Server error: Check messages from the SQL Server\\n")
。
我想知道如何将参数传递给sql语句?
经过一些调试后,我发现问题与表名有关。 看来我无法在参数中添加表名称。 我不想集中sql字符串的原因是为了避免sql注入。 有没有办法将表名作为参数传递?
尝试这个
sql = 'SELECT MIN(myDate) FROM %s'
cursor.execute(sql , ['Daily'])
可能是您的查询包含\\n
。
用空格( ' '
代替\\n
尝试这个,
sql = """
SELECT
MIN(myDate)
FROM
%s
"""
cursor.execute(sql.replace('\n',' '), ('Daily',))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.