Otra vez MySQL

Marcos Sánchez Provencio rapto en arrakis.es
Jue Feb 17 20:43:03 CET 2005


Parezco un disco rayado (era una cosa que les pasaba a los discos de
música en el siglo pasado ;-), pero insisto en que la mejor (la única
buena) manera de pasar valores a un servidor es usar parámetros. 

Ventajas de usar parámetros:
* Escapado de comillas automático
* Transparencia al pasar fechas
* Neutralización de cualquier intento de inyección SQL
* Rendimiento en consultas repetitivas, al analizarse/optimizarse una
sola vez el sql.
* Optimización del ancho de banda, al usar codificaciones óptimas para
los valores de los parámetros.

Desventajas:
* Impulso de contárselo a la gente :-)

Pego la parte relevante de 
http://sourceforge.net/docman/display_doc.php?docid=26238&group_id=22307

To perform a query, you first need a cursor, and then you can execute
queries on it:

c=db.cursor()
max_price=5
c.execute("""SELECT spam, eggs, sausage FROM breakfast
          WHERE price < %s""", (max_price,))

In this example, max_price=5 Why, then, use %s in the string? Because
MySQLdb will convert it to a SQL literal value, which is the string '5'.
When it's finished, the query will actually say, "...WHERE price < 5".

Why the tuple? Because the DB API requires you to pass in any parameters
as a sequence.


El jue, 17-02-2005 a las 11:08 -0800, FERNANDO VILLARROEL escribió:
> Hola :
> 
> query="insert into tabla (rut, nombre) values
> (%d,'%s') % (variable_1,variable_2)
> 
> cursor.execute(query)
> 
> Fijate que las variables van empaquetadas como una
> tupla.
> 
> Tambien puede ser:
> 
> cursor.execute(query % tupla)
> %d para numeros.
> '%s' para cadenas.
> Suerte.
> --- Daniel cabrera <cabrerachaparro en gmail.com> wrote:
> 
> > Hola,
> > por favor algien podria decirme como es la sintaxis
> > para pasar valores
> > a tra vez de un insert con variables, por ejemplo:
> > usurario="xxx"
> > codigo="yyy"
> >  esas variables pasarlas mediante un
> > cursor.execute("insert into
> > <tabla> values usuario, codigo"), cual seria la
> > sintaxis correcta por
> > favor.
> > 
> > Gracias,
> > 
> > -- 
> > Daniel Cabrera Chaparro
> > > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
> > 
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Take Yahoo! Mail with you! Get it on your mobile phone. 
> http://mobile.yahoo.com/maildemo 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




Más información sobre la lista de distribución Python-es