IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

python et connexion mysql


Sujet :

Python

  1. #1
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut python et connexion mysql
    Bonjour,

    C'est la première fois que je fais un petit script de connexion à une base mysql depuis un script python, et j'ai un problème. En apparence, il a l'air de s'exécuter, mais il ne me renvoi rien après mon select. Voici mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #!/usr/bin/env python
     
    import os
    import subprocess
    import re
    import MySQLdb
     
    ''' connect to DB '''
    def connectDB():
            try:
                    conn = MySQLdb.connect(
                            host = "127.0.0.1",
                            user = "xxxx",
                            passwd = "xxxx",
                            db = "xxxx"
                    )
                    return conn
            except MySQLdb.Error, e:
                    print "Error %d: %s" % (e.args[0], e.args[1])
                    sys.exit (1)
     
    ''' execute sql queries '''
    def execSQL(conn,query):
            try:
                    cursor = conn.cursor(MySQLdb.cursors.DictCursor)
                    cursor.execute(query)
                    rows = cursor.fetchall()
                    cursor.close()
                    return rows
            except MySQLdb.Error, e:
                    print "Error %d: %s" % (e.args[0], e.args[1])
                    sys.exit (1)
     
    ''' diconnect from DB '''
    def closeDB(conn):
            conn.close()
     
    ''' main program '''
     
    conn = connectDB()
     
    while (1):
            results = execSQL(conn,'SELECT * FROM evt WHERE type="Send" OR type="Ring" OR type="Sys" ORDER BY tstamp')
            for row in results:
                    print row["type"]
     
    closeDB(conn)
    Ai-je loupé quelque chose ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    À première vue, je pense qu'il vous manque un commit dans votre fonction execSQL

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    def execSQL(conn, query):
        try:
                    cursor = conn.cursor(MySQLdb.cursors.DictCursor)
                    cursor.execute(query)
                    cursor.commit() # <- ici #
                    rows = cursor.fetchall()
                    cursor.close()
                    return rows
        except ...

  3. #3
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut
    Merci, effectivement il me manquait ça, mais ce n'est pas la cause.

    Je me suis rfendu compte que .... ma table était viiiiddddeeeeeee hahaahaha. Forcément, il ne peut pas me renvoyer des données ...

    Ca marche mieux avec des données

    merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/04/2015, 07h57
  2. Connexion python (django) avec mysql
    Par boulet_sensei dans le forum Django
    Réponses: 2
    Dernier message: 08/10/2010, 01h12
  3. Connexion mysql
    Par olive.m dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 18/06/2004, 17h44
  4. [Connexion MySQL] Can't connect to MySQL server
    Par mat_dum dans le forum Outils
    Réponses: 12
    Dernier message: 17/07/2003, 07h49
  5. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo