Dans python + sqlite3 "OperationalError: no such column:"

introduction

Lorsque j'ai essayé d'ajouter des données à la base de données en utilisant sqlite3 en python, j'ai obtenu "Erreur opérationnelle: aucune colonne de ce type: Aucune". De la conclusion, il semble que la grammaire était inappropriée.

environnement

python 3.7 sqlite 3.30.0

Statut

Créez une base de données simple pour reproduire l'erreur. Supposons que la table des exemples a une valeur de colonne de type entier. Stockez la valeur de la variable x créée dans python en tant que valeur.

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()

Aucune erreur ne se produit lorsque x = 1. Mais si x = Aucun

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

problème

Le problème est que j'ai utilisé .format (), donc "None" est devenu une chaîne. J'ai remarqué que c'était une erreur stupide, mais j'ai mangé beaucoup de temps ... Pour être correct, écrivez comme suit. Cela a également été recommandé dans Official.

#~~~Abréviation~~~~
x=None
sql="insert into examples(value) values(?)"
c.execute(sql, [x])
#~~~Abréviation~~~~

Conclusion

Soyez prudent lorsque vous intégrez des variables python dans des requêtes SQL.

Recommended Posts

Dans python + sqlite3 "OperationalError: no such column:"
Sqlite en Python
OperationalError dans SQLAlchemy + SQLite3
Lors de l'émission d'une instruction INSERT en Python, aucune colonne de ce type n'est affichée
Comment utiliser SQLite en Python
Il n'y a pas de commutateur en python
Clé étrangère dans SQLite de Python [Note]
Relancé de "pas d'accès Internet" en Python
ModuleNotFoundError en Python: aucun module nommé story
Erreur d'importation: aucun module nommé "xxxxxx" dans Python3
Python en optimisation
CURL en Python
Utilisez Python pour une sortie formatée telle que C / C ++ printf
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
ModuleNotFoundError: Erreur de module nommé'_bz2 'en Python dans pyenv
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Étape AIC en Python
LINE-Bot [0] en Python
Que faire lorsque [Errno 2] Aucun fichier ou répertoire de ce type n'apparaît en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Importer cv2 ModuleNotFoundError: Aucun module nommé "cv2" dans python3
Traitement parallèle sans signification profonde en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Solution lorsque le module'XXX 'n'a pas d'attribut'XXX' en Python
Comment gérer le type datetime dans sqlite3 de python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Implémentation de List et Bool en Python et SQLite3 (note personnelle)
[Python] Pas de valeur pour l'argument lui-même dans un appel de méthode non lié
Exemple de code spécifique pour travailler avec SQLite3 en Python
Stocker le japonais (chaîne de caractères multi-octets) dans sqlite3 de python