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