【问题标题】:How to escape from a string with single quote inside to do an insert?如何从带有单引号的字符串中逃脱以进行插入?
【发布时间】: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)")

我做错了什么?我会按照你说的检查参数化查询。

【问题讨论】:

标签: sql-server python-3.x pyodbc


【解决方案1】:

解决方案:

我正在使用 '{}'.format... 执行执行方法,但它不适用于具有此类特殊字符的插入,我更改为 cursor.execute("INSERT INTO table VALUES (?,?,?,?,?,?,?,?,?,?)",value1, value2....) 和任何问题

谢谢你的帮助

【讨论】:

    猜你喜欢
    • 2010-10-31
    • 2013-06-05
    • 2016-08-26
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2011-01-26
    • 2020-02-11
    相关资源
    最近更新 更多