【发布时间】:2020-05-22 18:43:50
【问题描述】:
我正在尝试在 Python 3 上插入 N"Pepito Malasanya O'Dhogerty" 但无法转义单引号,PYODBC 上的错误是:
“语法错误”。
我知道我必须添加另一个 (O''Dhogerty),但我尽了最大努力尝试了我所看到的一切,但没有修复它。
这就是我到目前为止所做的:
string = string.replace("'", "\\'\\'")
更新:
它不起作用,因为我在字符串前面使用了“N”(因为我有像“ª”这样的字符)
现在我有:
row[0] = row[0].replace("'","\'\'")
pyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][ODBC SQL Server Driver][SQL Server]El nombre de columna 'Pepito Malasanya O''Dhogerty' no es válido. (207) (SQ LExecDirectW)")
我做错了什么?我会按照你说的检查参数化查询。
【问题讨论】:
-
改用参数化查询。这样可以避免逃逸丑陋,提供many other benefits.
-
试试
string = string.replace("'", "''") -
同样...@Bohemian
-
反斜杠的用途是什么?应该只是
replace("'","''")
标签: sql-server python-3.x pyodbc