Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: b0h en 12 Marzo 2008, 06:33 am



Título: Problema Con Python+Mysql (insert)
Publicado por: b0h en 12 Marzo 2008, 06:33 am
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    |       |
+-----------+-------------+------+-----+---------+-------+


Título: Re: Problema Con Python+Mysql (insert)
Publicado por: Flakito81 en 12 Marzo 2008, 19:38 pm
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
  1. 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))
  2.  

Suerte!


Título: Re: Problema Con Python+Mysql (insert)
Publicado por: b0h en 16 Marzo 2008, 16:26 pm
ya encontre la solucion es poner db.commit() debajo del  execute  :)
gracias por tu respuesta.