Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/12/2014, 01:36
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: [Ayuda]Insertar desde Python un date en Mysql

No chavos, nunca formaten cadenas con parámetros. Eso es la entrada a sql injection. Para eso la api de la base de datos se encarga de hacer ese procesamiento.

Estoy asumiendo que usas la librería mysql.

Así sería un script completo para insert. Si te fijas la fecha lo paso tal cual un objeto date, el api de mysql se encarga de pasarlo a un formato adecuado. Y si te fijas no formateo una cadena con los parámetros recibidos.

Código Python:
Ver original
  1. import datetime
  2. import mysql.connector
  3.  
  4. connection = mysql.connector.connect(user='user', password='password', database='database')
  5. cursor = connection.cursor()
  6.  
  7. dni = 10
  8. nombre = 'George'
  9. apellido = 'Lopez'
  10. fecha_nacimiento = datetime.date(1961, 4, 23)
  11. lugar_nacimiento = 'Mission Hills, California, Estados Unidos'
  12. domicilio = 'California'
  13.  
  14. sql = """
  15.    INSERT INTO alumno
  16.    (
  17.        dni,
  18.        nombre,
  19.        apellido,
  20.        fecha_nacimiento,
  21.        lugar_nacimiento,
  22.        domicilio,
  23.        e-mail
  24.    )
  25.    VALUES (
  26.        %s,
  27.        %s,
  28.        %s,
  29.        %s,
  30.        %s,
  31.        %s,
  32.        %s,
  33.        )
  34.    """
  35. datos = (dni, nombre, apellido, fecha_nacimiento, lugar_nacimiento, domicilio, e_mail)
  36. cursor.execute(sql, datos)
  37. cursor.commit()
  38.  
  39. cursor.close()
  40. connection.close()

PD: El commit es muy importante.