Problema Con Python+Mysql (insert)

Iniciado por b0h, 12 Marzo 2008, 06:33 AM

0 Miembros y 1 Visitante están viendo este tema.

b0h

por favor necesito ayuda tengo el siguiente codigo y no se que anda mal, el programa no me tira error de compilacion ni nada parece como que funciona bien pero cuando hago un select * from no veo los datos que inserte. aqui esta el codigo:
def agregar():
    matricula= raw_input ("Digite La Matricula: ")
    nombre = raw_input('Digite el Nombre: ')
    apellido= raw_input('Digite Apellido: ')
    materia1= raw_input('Materia 1: ')
    materia2= raw_input('Materia 2: ')
    materia3= raw_input('Materia 3: ')
    materia4= raw_input('Materia 4: ')
    materia5= raw_input('Materia 5: ')
    materia6= raw_input('Materia 6: ')
    cursor.execute("""INSERT INTO est (matricula, nombre, apellido, mat1, mat2, mat3, mat4, mat5, mat6) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)""", (matricula, nombre, apellido, materia1, materia2, materia3, materia4, materia5, materia6))
    print("Guardado")

cuando uso el cursor.execute con select y otros me funciona pero no con  insert .

DATOS DE LA TABLA:
mysql> describe est
    -> ;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| matricula | varchar(10) | YES  |     | NULL    |       |
| nombre    | varchar(50) | YES  |     | NULL    |       |
| apellido  | varchar(50) | YES  |     | NULL    |       |
| mat1      | varchar(50) | YES  |     | NULL    |       |
| mat2      | varchar(50) | YES  |     | NULL    |       |
| mat3      | varchar(50) | YES  |     | NULL    |       |
| mat4      | varchar(50) | YES  |     | NULL    |       |
| mat5      | varchar(50) | YES  |     | NULL    |       |
| mat6      | varchar(50) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+

Flakito81

Es por la forma en la q envias el mensaje. Lo correcto es usar comillas simples ( '  ') al principio y al final de los valores (VALUES) que vas a agregar:
Código (python) [Seleccionar]

cursor.execute("""INSERT INTO est (matricula, nombre, apellido, mat1, mat2, mat3, mat4, mat5, mat6) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s',' %s', '%s')""", (matricula, nombre, apellido, materia1, materia2, materia3, materia4, materia5, materia6))


Suerte!

b0h

ya encontre la solucion es poner db.commit() debajo del  execute  :)
gracias por tu respuesta.