In Python + SQLite3 "OperationalError: keine solche Spalte:"

Einführung

Als ich versuchte, mit sqlite3 in Python Daten zur Datenbank hinzuzufügen, wurde "Betriebsfehler: Keine solche Spalte: Keine" angezeigt. Aus der Schlussfolgerung geht hervor, dass die Grammatik unangemessen war.

Umgebung

python 3.7 sqlite 3.30.0

Status

Erstellen Sie eine einfache Datenbank, um den Fehler zu reproduzieren. Angenommen, die Beispieltabelle hat einen Spaltenwert vom Typ Ganzzahl. Speichern Sie den Wert der in Python erstellten Variablen x als Wert.

import sqlite3

db_path="test.sqlite3"

con=sqlite3.connect(db_path)
c=con.cursor()
x=1
sql="insert into examples(value) values({0})".format(x)
c.execute(sql)

con.commit()
con.close()

Bei x = 1 tritt kein Fehler auf. Aber wenn x = Keine

#~~~Abkürzung~~~~
x=None
sql="insert into examples(value) values({0})".format(x)
c.execute(sql)
#~~~Abkürzung~~~~
OperationalError: no such column: None

Problem

Das Problem ist, dass ich .format () verwendet habe, sodass "None" zu einem String wurde. Ich bemerkte, dass es ein dummer Fehler war, aber ich habe viel Zeit gegessen ... Um richtig zu sein, schreibe wie folgt. Dies wurde auch in Official empfohlen.

#~~~Abkürzung~~~~
x=None
sql="insert into examples(value) values(?)"
c.execute(sql, [x])
#~~~Abkürzung~~~~

Fazit

Seien Sie vorsichtig, wenn Sie Python-Variablen in SQL-Abfragen einbetten.

Recommended Posts

In Python + SQLite3 "OperationalError: keine solche Spalte:"
SQLite in Python
OperationalError in SQLAlchemy + SQLite3
Bei der Ausgabe einer INSERT-Anweisung in Python wird keine solche Spalte angezeigt
Verwendung von SQLite in Python
In Python gibt es keinen Schalter
Fremdschlüssel in SQLite von Python [Hinweis]
Wiederbelebt von "kein Internetzugang" in Python
ModuleNotFoundError in Python: Kein Modul mit dem Namen story
Importfehler: Kein Modul mit dem Namen 'xxxxx' in Python3
Python in der Optimierung
CURL in Python
Verwenden Sie Python für formatierte Ausgaben wie C / C ++ printf
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
ModuleNotFoundError: Kein Modul mit dem Namen'_bz2 'in Python in pyenv
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
Schritt AIC in Python
LINE-Bot [0] in Python
Was tun, wenn [Errno 2] in Python keine solche Datei oder kein solches Verzeichnis angezeigt wird?
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Import cv2 ModuleNotFoundError: Kein Modul mit dem Namen 'cv2' in Python3
Parallele Verarbeitung ohne tiefe Bedeutung in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Lösung, wenn das Modul 'XXX' in Python kein Attribut 'XXX' hat
Wie man mit dem Datum / Uhrzeit-Typ in Pythons SQLite3 umgeht
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Implementierte List und Bool in Python und SQLite3 (persönliche Notiz)
[Python] Kein Wert für das Argument selbst im ungebundenen Methodenaufruf
Spezifischer Beispielcode für die Arbeit mit SQLite3 in Python
Speichern Sie Japanisch (Multibyte-Zeichenfolge) in sqlite3 von Python