SQLite3 "OperationalError: near "?": syntax error" Hatası

Soru işaretlerini değişken gibi düşünün, bu Python kodu nasıl çıkarma işlemi yapmıyor ise data = data ? da yapmaz:

data = 40
x = -20
data = data x

Kod bu hali ile çalışıyor:

import sqlite3


with sqlite3.connect(":memory:") as db:
    cursor = db.cursor()

    cursor.execute("CREATE TABLE temp(data TEXT);")
    cursor.execute("INSERT INTO temp VALUES (40);")
    ####################################################

    # Çalışmıyor:
    cursor.execute("UPDATE temp SET data = data + ?;", (-20,))

    # Çalışıyor:
    cursor.execute("UPDATE temp SET data = data {};".format("-20"))

    ####################################################
    print(cursor.execute("SELECT * FROM temp;").fetchall())

Ama f-string veya herhangi bir string metodu yerine her zaman soru işaretleri kullanmanız daha doğru ve güvenli olur.

1 Beğeni