Problemas con PostgreSQL

luis miguel morillas morillas en posta.unizar.es
Jue Feb 12 01:16:59 CET 2004


	Asunto: Re: [Python-es] Problemas con PostgreSQL
	Fecha: mié, feb 11, 2004 at 08:58:06 +0000


Citando a  Ayose (setepo en gulic.org):
> On Wed, Feb 11, 2004 at 07:34:05PM +0000, Esteban Manchado Velázquez wrote:
> > > [...]
> > 
> >    O sea, que se puede. ¿Y cómo es eso?
> > 
> 
> Con un argumento opcional en el execute, que puede ser una secuencia o
> un diccionario. Por ejemplo
> 
>   cursor = conn.cursor()
>   cursor.execute('SELECT a FROM b WHERE c=%s AND d=%s', (v1, v2))
>                                          ~~~~     ~~~~
>
Exacto. Un error frecuente, que puede provocar la inyección de código sql,
es construir la sentencia sql como si se tratara de una cadena sql, 
en lugar de hacer que el cursor construya los objetos de la consulta:

*************   esto está MAL ***************
cursor.execute('SELECT a FROM b WHERE c=%s AND d=%s' % (v1, v2))

                                                    ~~~
Creo que a este error se refería Esteban. Acaban de insertar una entrada en
el wiki de python sobre este tema:
http://www.python.org/cgi-bin/moinmoin/DbApiFaq

-- 

Luis Miguel

No a las patentes de software en Europa
EuropeSwPatentFree
http://EuropeSwPatentFree.hispalinux.es




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