Foros del Web » Programando para Internet » Python »

Concatenar variables en python.

Estas en el tema de Concatenar variables en python. en el foro de Python en Foros del Web. Sin saber mucho de python quiero hacer un insert en mysql desde python.... Ya estuve leyendo bastante y me aburrí, jaja, hasta que me den ...
  #1 (permalink)  
Antiguo 14/02/2011, 13:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta Concatenar variables en python.

Sin saber mucho de python quiero hacer un insert en mysql desde python....

Ya estuve leyendo bastante y me aburrí, jaja, hasta que me den ganas de volver a leer quiero hacer un insert, pero no se como concatenar las variables en mi sentencia sql.

Algo como esto. Necesito que la sentencia tenga el valor de las variables.

uno = "variable1"
dos = "variable2"
tres = "variable3"

sql2 = "insert into alumnos (nombre, apellidos, email) values (uno, dos, tres)"
cursor.execute(sql2)


En php seria...

sql2 = "INSERT INTO trabajos (idtrabajo, nombre, precio) VALUES ('".$variable1."', '".variable2."', ".$variable3.")"

Saludos.

PD: De mas esta decir que ya tengo el modulo para mysql y la conexión hecha y demás menesteres.
  #2 (permalink)  
Antiguo 14/02/2011, 13:46
Avatar de 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: Concatenar variables en python.

Incluso en php lo estas haciendo mal, ya estas dando oportunidad a una "SQL Injection".
La manera correcta es:
Código:
values = ("0", "nombre", "apellido")
cursor.execute("INSERT INTO trabajos (idtrabajo, nombre, precio)  VALUES(%s, %s, %s)", values)
  #3 (permalink)  
Antiguo 14/02/2011, 13:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Concatenar variables en python.

Ok.

Eso es una tupla, no?
Hay que poner un %s por cada valor que tenga "values"? Que forma peculiar. Gracias.

Saludos

PD: De php se un poco nomas, falta practica, ¿Como es que estoy dando la oportunidad de SQL-Injection? Eso lo tengo que saber para no volverlo a hacer.

Gracias de nuevo.

Última edición por vicluber; 14/02/2011 a las 14:04
  #4 (permalink)  
Antiguo 15/02/2011, 05:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Concatenar variables en python.

Solamente estás dando oportunidad a una inyección SQL si las variables provienen de una entrada del usuario.

Es bien simple, imagina esta situación: Un formulario de inicio de sesión, con campos usuario y contraseña. Un SELECT contra MySQL para probar si el usuario existe:

SELECT COUNT(usuario) FROM mitabla WHERE usuario='$usuario'

Ahora imaginate que no estás filtrando los datos de entrada, y yo voy a tu formulario y escribo esto en el campo de Usuario: ' OR 1=1

¿El resultado al concatenar?
SELECT COUNT(usuario) FROM mitabla WHERE usuario='' OR 1=1

O aún peor, ¿qué pasa si ingreso '; DROP TABLE usuarios?
SELECT COUNT(usuario) FROM mitabla WHERE usuario=''; DROP TABLE usuarios

¿Queda claro?

El tema de las %s es simplemente para utilizar formateo de cadenas, es equivalente a lo que se hace con printf() en PHP o en C. Te evitás tener que concatenarlo de a trozos, y es más rápido.


Saludos.
  #5 (permalink)  
Antiguo 15/02/2011, 12:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Concatenar variables en python.

Claro como el agua.

Ahora que me das el ejemplo del ' OR 1=1 entiendo todo, jaja, eso se lo había visto hacer a alguien antes de tener conocimiento de sql.

Muchas gracias.

Te preguntaría como filtrar las variables de php, pero esto es el foro de python y me van a retar, lo voy a googlear.

SAludos, gracias de nuevo a los dos.
  #6 (permalink)  
Antiguo 15/02/2011, 14:54
Avatar de 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: Concatenar variables en python.

Usa PDO, filtrar nunca funciona.
Link relacionado
  #7 (permalink)  
Antiguo 18/02/2011, 01:22
 
Fecha de Ingreso: agosto-2009
Mensajes: 51
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Concatenar variables en python.

Ok, así lo haré gracias.

Etiquetas: concatenar, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:33.