2010-04-07 6 views
4

Ok, je me connecte sur le client en ligne de commande MySQL en tant que root. Ensuite, j'ouvre ou exécute une application python en utilisant le module MySQLdb en tant que root. Quand je vérifie les résultats en utilisant python (IDLE), tout va bien. Lorsque j'utilise le client de ligne de commande MySQL, aucun INSERT n'a eu lieu. Si je change les choses autour de _mysql au lieu de MySQLdb, tout fonctionne bien. J'apprécierais toute clarification.MySQLdb pas INSERTION, _mysql fonctionne bien

"Travaux" jusqu'à IDLE/machine virtuelle est remise à zéro:

import MySQLdb 
db = MySQLdb.connect(user='root', passwd='*******',db='test') 
cursor = db.cursor() 
cursor.execute("""INSERT INTO test VALUES ('somevalue');""",) 

Travaux:

import _mysql 
db = _mysql.connect(user='root', passwd='*******',db='test') 
db.query("INSERT INTO test VALUES ('somevalue');") 

Informations système: Intel x86 Windows XP Python 2.5 MySQL 5.1.41 MySQL- Python 1.2.2

Répondre

4

Je pense qu'ils utilisent des paramètres d'autocommit différents . Utilisez commit() après avoir inséré des données.

17

Vous pouvez utiliser db.commit() pour soumettre des données ou définir db.autocommit() après _mysql.connect(...) pour les demandes de validation automatique.

+0

Cela a fonctionné pour moi, merci de l'avoir posté (il y a presque 3 ans)! – armani

+0

C'est exactement ce que je cherchais. Curieusement, la plupart des tutoriels ne * mentionnent * pas ce qui me surprend. –

Questions connexes