我正在通过python运行一个脚本,将数据插入数据库。我可以插入几行;但是,如果我尝试插入一个包含单引号的行,则会给出错误:
sName = "Jim O'Connor"
返回错误:
ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Jim O'Connor')'. (-3100) (SQLExecDirectW)")
我曾尝试使用替换功能,但它从来没有证明我需要它。
sName = sName.replace("'","\'")
返回Jim O'Connor
和
sName = sName.replace("'","\\'")
返回Jim O\\'Connor
我需要的是Jim O\'Connor
提前致谢!
更新 发表的文章是为了将此标记为重复,但绝不会回答我为什么会收到此错误的问题。这是一个关于参数化的问题(我没有问过)。虽然我理解答案可能是使用参数,但是询问为什么转义的SQL语句不起作用与询问如何参数化完全不同。我将审阅该文章,以确定使用参数是否解决了问题。