4

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

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

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

4

2 回答 2

6

您可以传递参数,这将被转义。

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

于 2013-06-17T02:09:07.040 回答
-1

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

cursor.execute("SELECT x from y where Name=''%s''" % namepar)
于 2021-12-22T20:02:33.783 回答