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

Bibliothèques tierces Python Discussion :

[MYSQLdb]


Sujet :

Bibliothèques tierces Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut [MYSQLdb]
    Bonjour ! Depuis plusieurs jours, je cherche désespérement un quelconque tutos qui pourrait expliquer comment faire pour récupérer et ecrire dans une base de données avec Python et MYSQLdb...

    POur l'instant l'infos grapiller à droite à gauche me permet d'en être là:

    import MySQLdb;

    conn=MySQLdb.connect('localhost','root','','pd-python')

    un petit print ...
    (print conn: <_mysql.connection open to 'localhost' at 81c30e4> )

    curs = conn.cursor()
    result=curs.execute("select * from TABLE" )
    curs=conn.cursor()

    un petit print ...
    (print curs: <MySQLdb.cursors.Cursor object at 0xb778b80c>.)

    les choses deviennent difficile ici:

    result=curs.execute("select * from *" )

    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 163, in execute
    self.errorhandler(self, exc, value)
    File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line 35, in defaulterrorhandler
    raise errorclass, errorvalue
    _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*' at line 1")

    au secours !!!! merci d'avance !

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour,

    Il te faut designer une table dans ton select:

    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Et bien oui, merci !
    ça fonctionne j'arrive à lire dedans c'est impeccable. J'ai une petite question. Est-ce cela performant si j'attaque ma base de donnée avec un script shell qui va rafraichir régulièrement des listes de mots qui doivent s'afficher, genre toute les secondes ?

  4. #4
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    un script shell qui va rafraichir régulièrement des listes de mots qui doivent s'afficher
    Que veux-tu faire de ces données?
    Où veux-tu les afficher?
    Pourquoi as-tu besoin de rafraichir toutes les secondes?
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    hello !

    En fait, j'ai besoin de synchroniser deux bases de données.
    Des utilisateurs peuvent remplir celle se trouvant en ligne d'autres celle en local (que j'ai absolument besoin de conserver en cas de non-connexion de celle-ci au web)

    Et j'ai besoin d'approcher le temps réel pour afficher les derniers contenus postés par des utilisateurs en local et/ou sur le web.

    Donc je pensai faire une replication de serveur avec une detection régulière de connexion au web valide ou non et en python, j'interroge la base locale régulièrement pour capter les dernières modifications.

    J'espère avoir été clair...

    merci d'avance de tes conseils !

  6. #6
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Je ne peux que te conseillé de poster sur le forum Base de Données, ton problème n'étant plus lié à python.

    Bonne continuation.
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je profite de ce sujet, car ayant un souci avec Python et MySQLdb

    voici le code qui me pose souci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import MySQLdb;
     
    name="DURAND"
    prenam="JEAN"
    conn = MySQLdb.connect('serveur','login','password', 'base')
    curs = conn.cursor()
     
    result=curs.execute("select * from annuaire whrere Nom LIKE name and Prenom LIKE prenam")
    result=curs.execute("select * from annuaire whrere Nom LIKE 'DURAND' and Prenom LIKE 'JEAN'") # <---- Cela Fonctionne mais non dynamique
    result=curs.fetchone()
    print 'result : ',result;
    result=curs.fetchall()
    curs.close()
    conn.close()
    Malheureusement, j'ai une erreur 1064, You have an error in your SQL syntax,
    Par contre quand je mets en dure le nom et le prénom cela fonctionne mais je souhaite cela soit dynamique

    Merci par avance

    Je débute en Python, merci de votre indulgence ...

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour,
    si name et prename sont deux variables,tu les initialises puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result=curs.execute("select * from annuaire where Nom LIKE '%s' and Prenom LIKE '%s'"  % (name,prename))

  9. #9
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci pour cette réponse, je n'ai pas encore eu le temps de testé,
    Mais cela me semble pas mal du tout, (ressemble beaucoup à du C)

Discussions similaires

  1. insert impossible avec MySQLdb
    Par nicdes dans le forum Bibliothèques tierces
    Réponses: 2
    Dernier message: 31/10/2008, 19h46
  2. [MySQLdb] Nom de colonne
    Par airod dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 03/06/2008, 14h02
  3. Pb INSERT avec MySQLdb
    Par bliss_charles dans le forum Général Python
    Réponses: 1
    Dernier message: 05/07/2007, 18h02
  4. installation MySQLdb - fichier egg
    Par julien.63 dans le forum Déploiement/Installation
    Réponses: 3
    Dernier message: 08/03/2007, 17h23
  5. Python et MySQLdb : récupérer des données
    Par micatmidog dans le forum Bibliothèques tierces
    Réponses: 12
    Dernier message: 31/01/2006, 18h13

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