【发布时间】:2019-01-12 12:46:38
【问题描述】:
你好吗?我希望如此,所以我正在开发一个商业应用程序,但是这在它所说的 sql 中给出了一个错误: sqlite3.OperationalError: near "José": syntax error 好像短语的空白处有错误
cursor.execute(f"""update funcionarios
set nome = {nome}, senha = {senha}, telefone = {telefone},
endereco = {endereco}, anotacoes = {anotacao}
where cpf = {pesq}
""")
不带空格的名称“ErlonJunior”有效,但带空格的“José Street”返回此错误:
错误 sqlite3.OperationalError:靠近“José”:语法错误:
【问题讨论】:
-
senha = {senha}是 Python 中的字符串插值吗?如果是,那么你会得到类似UPDATE tab SET col = Rua Jose的明显错误,因为你真的想要UPDATE tab set col = 'Rua Jose'。我建议使用参数化查询来避免可能的 SQL 注入攻击。 -
@LukaszSzozda 参数是字符串,给出的错误是字符串的间距,我已经检查了类型
标签: python sql python-3.x python-2.7 sqlite