簡體   English   中英

sqlite3.OperationalError:“”附近:語法錯誤

[英]sqlite3.OperationalError: near “ ”: syntax error

嗨,你好嗎? 我希望如此,所以我正在開發一個商業應用程序,但是這在sql中給出了一個錯誤: sqlite3.OperationalError:“José”附近:語法錯誤 ,好像短語的空格中有錯誤

cursor.execute(f"""update funcionarios
            set nome = {nome}, senha = {senha}, telefone = {telefone},
                endereco = {endereco}, anotacoes = {anotacao}
            where cpf = {pesq}
            """)

名稱“ ErlonJunior”不帶空格可以使用,但是帶空格的“JoséStreet”可以返回此錯誤:

(圖像)名稱“ ErlonJunior”不帶空格有效,但是帶空格的“JoséStreet”返回此錯誤

錯誤sqlite3.OperationalError:“José”附近:語法錯誤:

(圖像)錯誤sqlite3.OperationalError:“José”附近:語法錯誤

不要手工格式化SQL字符串(在您的情況下使用f字符串),這容易出錯。 您可以在SQLite3中使用參數化查詢:

import sqlite3

with sqlite3.connect(":memory:") as con:

    cur = con.cursor()

    cur.execute('CREATE TABLE funcionarios (id integer PRIMARY KEY, nome text)')

    cur.execute('INSERT INTO funcionarios (nome) VALUES (:nome)',
      {'nome': 'Rua Jose'})

    cur.execute('UPDATE funcionarios SET nome = :nome WHERE id = 1',
      {'nome': 'Santa Maria'})

    cur.execute('SELECT * FROM funcionarios')
    print(cur.fetchall())

打印:

[(1, 'Santa Maria')]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM