2012-04-04 10 views
8

Estoy usando Python 2.7 con MySQLdb 32bit, junto con MySQL 5.5.8 ejecutando local.Python MySQL: No muestra registros insertados

Estoy volviendo loco por esto, nunca he visto algo así.

Básicamente, Estoy insertando registros en MySQL desde Python a través de:

db=MySQLdb.connect(host="localhost",user="root", passwd="mypassword",db="python",port=3307) 
cur=db.cursor() 
cur.execute("INSERT INTO mytable(myfield) VALUES(%s);","somedata") 

He verificado que está conectado correctamente y que puede con éxito SELECT datos de la base de datos.

Aquí está la parte extraña: Desde MySQL Query Browser (herramienta GUI) Y desde MySQL a través de CMD, no puedo ver los registros insertados.

puedo insertar y seleccionar registros de mi script en Python, pero que no aparecen en mi base de datos, simplemente devuelve Empty Set (0.00 sec)

Y aquí está la parte realmente extraña: yo puedo truncar y eliminar datos de la interfaz gráfica de usuario herramienta y desde la consola.

En resumen: puedo insertar y seleccionar datos de la secuencia de comandos de Python. No puedo ver esa información en MySQL. Sin embargo, puedo truncar y borrar esos datos usando MySQL.

Estoy completamente perdido en este momento.

Respuesta

18

Si el código funciona en la consola, pero no lo contrario, creo que es necesario agregar la línea

db.autocommit(True) 

Después de conectar o lo que necesita hacer db.commit() después de sus inserciones.

+0

¿El método 'commit' no está en' db' en este caso? – exhuma

+0

Tienes toda la razón @exhuma, mi error. –

+0

Ojalá pudiera haberlo encontrado en los ejemplos en la documentación ... ¡¡Gracias !!! Aceptaré tu respuesta en aprox. ¡4 minutos! – MrZander

Cuestiones relacionadas