Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Général Python
Général Python Forum d'entraide sur les fondamentaux du langage Python, syntaxe, POO, bibliothèque standard, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/01/2013, 08h53   #1
zerros
Membre régulier
 
Inscription : septembre 2003
Messages : 245
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 245
Points : 75
Points : 75
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 :
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 ?
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 09h55   #2
PsycoPy
Membre du Club
 
Inscription : juin 2011
Messages : 43
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 43
Points : 61
Points : 61
Bonjour,

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

Code python :
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 ...
PsycoPy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2013, 09h58   #3
zerros
Membre régulier
 
Inscription : septembre 2003
Messages : 245
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 245
Points : 75
Points : 75
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.
zerros est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h41.


 
 
 
 
Partenaires

Hébergement Web