Pyodbc 查询字符串引号转义

Posted

技术标签:

【中文标题】Pyodbc 查询字符串引号转义【英文标题】:Pyodbc query string quote escaping 【发布时间】:2013-06-12 22:23:12 【问题描述】:

我正在尝试使用带有这种代码的 pyodbc 执行查询

cursor.execute("SELECT x from y where Name='%s'"%namepar)

参数可能有引号,因此需要对其进行转义才能工作,我该怎么做?我尝试在 namepar 中简单地将“'”替换为“\\'”,但它仍然不起作用,我得到一个 pyodbc.ProgrammingError

【问题讨论】:

【参考方案1】:

您也可以尝试在其周围加上一组额外的引号。它适用于我的用例。

cursor.execute("SELECT x from y where Name=''%s''" % namepar)

【讨论】:

【参考方案2】:

你可以传递参数,那将被转义。

cursor.execute("SELECT x from y where Name = ?", (namepar,))

http://www.python.org/dev/peps/pep-0249/#id15

http://code.google.com/p/pyodbc/wiki/Cursor

【讨论】:

以上是关于Pyodbc 查询字符串引号转义的主要内容,如果未能解决你的问题,请参考以下文章

姜戈。查询。用引号转义字符串错误

如何在使用 jooq 创建查询字符串时转义单引号?

SQL Server 中的转义字符

sql注入逃逸双引号转义

sql语句中,如何表示单引号

pdo-php-javascript (ajax) 的简单引号转义问题