1136, "Column count doesn't match value count at row
J'ai ce code d'erreur, (1136, "Column count doesn't match value count at row) mais pourtant j'ai vérifié et j'ai le même nombre de valeurs que de colonnes dans ma base de données. Ma base de données est installé sur un rasberry pi 3b+. Voici ma page en python qui insère les données:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #!/usr/bin/env python
# coding: utf-8
import MySQLdb
import time
import serial
from datetime import datetime
db = MySQLdb.connect("localhost", "root", "root", "AcrobatX") or die
("impossible de se connecter a la bd")
cursor = db.cursor()
device = '/dev/ttyUSB0' # définition du port USB utilise par l'arduino
try:
print("en cours de connexion..."), device
# arduino = serial.Serial(device, 57600),
arduino = serial.Serial(
port='/dev/ttyUSB0',
baudrate=57600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=5
)
except:
print("Echec de la connexion"), device
try:
data = arduino.readline() # lecture des données de arduino
print("arduino readline")
print(data) # affiche les données lues du port série
line = data # enregistre la ligne data dans line
var = line.decode() # converti la ligne qui est en byte en str
print(var) # affiche la ligne convertie
pieces = var.split(', ') # divise les donnees par une virgule
print(pieces[0])
try:
cursor.execute("""INSERT INTO sauts (id, piste1, piste2, piste3, piste4, piste5, moment)
values('"", pieces[0], pieces[1], pieces[2], pieces[3], pieces[4], NOW()')""")
db.commit()
print("Data insere")
cursor.close()
except MySQLdb.IntegrityError:
print("echec de transmission")
finally:
cursor.close()
except Exception as why:
print("arduino error: %s" % why)
db.rollback() |
Voici la structure de ma base de données:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # Nom Type Interclassement Attributs Null Valeur par défaut Commentaires Extra Action
1 idPrimaire int(11) Non Aucune AUTO_INCREMENT Modifier Modifier Supprimer Supprimer
2 piste1 int(10) UNSIGNED Oui NULL Modifier Modifier Supprimer Supprimer
3 piste2 int(10) UNSIGNED Oui NULL Modifier Modifier Supprimer Supprimer
4 piste3 int(10) UNSIGNED Oui NULL Modifier Modifier Supprimer Supprimer
5 piste4 int(10) UNSIGNED Oui NULL Modifier Modifier Supprimer Supprimer
6 piste5 int(10) UNSIGNED Oui NULL Modifier Modifier Supprimer Supprimer
7 moment datetime Non Aucune Modifier Modifier Supprimer Supprimer |
Est-que quelqu'un peux m'aider SVP.
Malheureusement ta solution ne fonctionne pas
Lorsque j'enlève les quotes, j'ai ce message d'erreur. J'ai essayé avec simple quote ou double quote, rien n'y fait. Dès que je met des quotes, j'ai le message d'erreur 1136, et lorsque j'enlève les quotes, j'ai un autre message, le 1064
Code:
1 2
|
(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[0], pieces[1], pieces[2], pieces[3], pieces[4], NOW())' at line 2") |