Requête SQL qui ne passe pas

Fermé
DeadGun - Modifié le 14 mai 2021 à 22:01
DeadGun Messages postés 3 Date d'inscription vendredi 14 mai 2021 Statut Membre Dernière intervention 14 mai 2021 - 14 mai 2021 à 22:12
Bonjour,
je me permet de poster ici malgré le titre car je ne pense pas que mon problème vienne de mon code SQL.
Alors voilà, pour enregistrer dans ma BDD, je crée un curseur, puis je l'utilise à la ligne 6. Cette requête passe sans soucis donc mes infos sont enregistrées dans ma BDD.
Je réutilise le même processus à la ligne 15 sans oublié le .commit() pour que la requête prenne effet mais là, rien ne s'enregistre dans ma BDD et je n'ai aucune erreur! De plus, l'exécution s'arrête ici puisque le print() ligne 20 n'est pas exécuté...

Je sèche totalement sur ce problème donc toute aide est la bienvenue!


#Mise en place du curseur qui nous permet de faire des requêtes
cursor = connection.cursor()

#Enregistrement des informations générales
elementsRequeteInfosGenerales = (nomRelease, fichiers[numeroFilm], dureeFilm)
cursor.execute("INSERT INTO films_infos_generales (nomRelease, titreFichier, dureeMinute) VALUES (%s, %s, %s)", elementsRequeteInfosGenerales)
connection.commit()

#Récupération de l'ID du film qui est en train d'être enregistré
cursor.execute("SELECT id FROM films_infos_generales ORDER BY id DESC")
id = cursor.fetchone()

#Enregistrement des informations de la vidéo
elementsRequeteInfosVideo = (id[0], idCodecVideo, hauteurVideo, largeurVideo, qualite)
cursor.execute("INSERT INTO films_infos_video (id_film, codecVideo, hauteur, largeur, qualite) VALUES (%s, %s, %s, %s, %s)", elementsRequeteInfosVideo)
connection.commit()

#Enregistrement des informations de la/des piste(s) audio(s)
 elementsRequeteInfosAudios = (id[0], nomPisteAudio, languePisteAudio, idCodecAudio, nombreCanaux)
 print(elementsRequeteInfosAudios)
 cursor.execute("INSERT INTO films_infos_audios (id_film, nomAudio, langueAudio, codecAudio, nombreCanaux) VALUES (%s, %s, %s, %s, %s)", elementsRequeteInfosAudios)
 connection.commit()

 #Enregistrement des informations des sous-titres
  elementsRequeteInfosSousTitre =  (id[0], nomPisteSousTitre, languePisteSousTitre, idCodecSousTitre)
  cursor.execute("INSERT INTO films_infos_soustitres (id_film, nomSousTitre, langueSousTitre, codecSousTitre) VALUES (%s, %s, %s, %s)", elementsRequeteInfosSousTitre)
  connection.commit()
A voir également:

1 réponse

jordane45 Messages postés 38427 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 février 2025 4 735
14 mai 2021 à 22:08
Bonjour,

Je ne fais pas de Python,
mais tu devrais placer tes requêtes dans des blocs Try
https://dev.mysql.com/doc/connector-python/en/connector-python-api-errors-error.html

un truc du genre :
try:
  #Enregistrement des informations de la vidéo
  elementsRequeteInfosVideo = (id[0], idCodecVideo, hauteurVideo, largeurVideo, qualite)
  cursor.execute("INSERT INTO films_infos_video (id_film, codecVideo, hauteur, largeur, qualite) VALUES (%s, %s, %s, %s, %s)", elementsRequeteInfosVideo)
  connection.commit()
except mysql.connector.Error as e:
  print "Error code:", e.errno        # error number
  print "SQLSTATE value:", e.sqlstate # SQLSTATE value
  print "Error message:", e.msg       # error message
  print "Error:", e                   # errno, sqlstate, msg values
  s = str(e)
  print "Error:", s                   # errno, sqlstate, msg values

0
DeadGun Messages postés 3 Date d'inscription vendredi 14 mai 2021 Statut Membre Dernière intervention 14 mai 2021
14 mai 2021 à 22:12
Merci pour ta réponse.
C'est vrai que je ne l'ai pas précisé mais c'est déjà dans un try ^^
J'ai mis exactement l'except que tu m'as donné et ça m'a renvoyé ceci:

Error code: -1
SQLSTATE value: None
Error message: Unread result found
Error: Unread result found
Error: Unread result found
0