Partage
  • Partager sur Facebook
  • Partager sur Twitter

INSERT en python

Sujet résolu
    15 février 2017 à 18:30:18

    Bonjour,

    Je crée un module d'inscription mais je n'arrive pas à enregistrer les données. Je précise que je debute en python :)

    J'effectue ce code suivant :

    c.execute("INSERT INTO users (id,nom,name,password) VALUES (?, ?, ?)", (nom,name,password))

    LA connexion à la bdd est bien la, je recupere bien les nom etc dans les variables mais rien ne s'enregistre :/, j'ai essayé plein de facons mais aucune ne fonctionne

    • Partager sur Facebook
    • Partager sur Twitter
      15 février 2017 à 19:06:37

      En supposant qu'il s'agit de sqlite, et sans voir tout le code, ne manque-t-il pas un 
      connexion.commit()
      ?
      Par curiosité c'est quoi la différence entre nom et name ?

      -
      Edité par noobien 15 février 2017 à 19:20:10

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        15 février 2017 à 19:16:57

        c semble être un objet cursor, alors que la méthode commit est lié me semble-t-il à l'objet connection, je me trompe ? (je n'ai que très peu de connaissance en sqlite)
        • Partager sur Facebook
        • Partager sur Twitter
          15 février 2017 à 19:19:51

          @oldProgrammer : oui pardon autant pour moi j'ai écrit trop vite, je corrige :

          cursor.execute("INSERT INTO users (id,nom,name,password) VALUES (?, ?, ?)", (nom,name,password))
          
          connexion.commit()
          





          • Partager sur Facebook
          • Partager sur Twitter
            15 février 2017 à 19:23:14

            Voilà une page très intéressante ;) http://apprendre-python.com/page-database-data-base-donnees-query-sql-mysql-postgre-sqlite
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              15 février 2017 à 19:30:44

              J'en rajoute une couche dans le sens plus pythonique de travailler avec with

              with sqlite3.connect("database.db") as con:
                  con.execute("...")

              qui permet de commiter automatiquement, sans s'en soucier.

              • Partager sur Facebook
              • Partager sur Twitter
                15 février 2017 à 19:48:49

                J'ai déja fait tous sa :/

                def inscription():
                	nom = raw_input("Entrez votre nom : ")
                	name = raw_input("Entrez votre pseudo : ")
                	mot_de_passe = raw_input("Entrez votre mot de passe : ")
                	password = hashlib.sha224(mot_de_passe).hexdigest()#SHA224 mot de passe
                	c.execute("INSERT INTO users (nom,name,password) VALUES (?, ?, ?)",(nom,name,password))
                	c.commit()


                ma connexion :

                conn = sqlite3.connect('test.db')
                c = conn.cursor()


                Et l''erreur :

                AttributeError: 'sqlite3.Cursor' object has no attribute 'commit'

                Varan1, je me suis inspiré de ce site justement :)

                • Partager sur Facebook
                • Partager sur Twitter
                  15 février 2017 à 19:51:26

                  JackBauer75 a écrit:

                  J'ai déja fait tous sa :/

                  def inscription():
                  	nom = raw_input("Entrez votre nom : ")
                  	name = raw_input("Entrez votre pseudo : ")
                  	mot_de_passe = raw_input("Entrez votre mot de passe : ")
                  	password = hashlib.sha224(mot_de_passe).hexdigest()#SHA224 mot de passe
                  	c.execute("INSERT INTO users (nom,name,password) VALUES (?, ?, ?)",(nom,name,password))
                  	c.commit()


                  ma connexion :

                  conn = sqlite3.connect('test.db')
                  c = conn.cursor()


                  Et l''erreur :

                  AttributeError: 'sqlite3.Cursor' object has no attribute 'commit'

                  Varan1, je me suis inspiré de ce site justement :)

                  Ça a été dit plus haut, c'est la connexion qui commite, pas le curseur

                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 février 2017 à 19:53:35

                    Cela me donne cette erreur 

                    NameError: global name 'cursor' is not defined

                    Je cherche sur internet en meme temps

                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 février 2017 à 19:56:13

                      On pourrait voir ton code entier ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 février 2017 à 19:58:38

                        #!/usr/bin/python2.7
                        # coding: utf8
                        import sqlite3
                        import hashlib
                        import os
                        import platform #check si c'est un linux ou windaub
                        import smtplib
                        
                        conn = sqlite3.connect('test.db')
                        c = conn.cursor()
                        
                        def inscription():
                        	nom = raw_input("Entrez votre nom : ")
                        	name = raw_input("Entrez votre pseudo : ")
                        	mot_de_passe = raw_input("Entrez votre mot de passe : ")
                        	password = hashlib.sha224(mot_de_passe).hexdigest()#SHA224 mot de passe
                        	c.execute("INSERT INTO users (nom,name,password) VALUES (?, ?, ?)",(nom,name,password))
                        	c.commit()
                        
                        inscription()
                        Il est pas complet, les autres fonctions dans le code marchent déja :) juste cette partie
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 février 2017 à 19:59:30

                          Je ne vois pas de variable cursor... Envoie le code ;)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 février 2017 à 20:01:57

                            C'est tous ce que j'ai :) , mes fonctions connexion , mail etc fonctionnent tres bien
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              15 février 2017 à 20:02:59

                              On l'a dit plus haut c'est conn.commit()
                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 février 2017 à 20:22:25

                                entwanne a écrit:

                                conn.commit()

                                J'ai gagné ?


                                Suspense, suspense...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  15 février 2017 à 20:39:49

                                  Effectivement sa marche ! :D Merci à tous !!
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    15 février 2017 à 21:18:56

                                    avec plaisir, n'oublie pas de marquer le sujet "résolu" ;)
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    INSERT en python

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown