consulta escapando caracteres

Chema Cortes pych3m4 en gmail.com
Jue Feb 28 20:25:15 CET 2008


El 28/02/08, inf200468 en ucf.edu.cu <inf200468 en ucf.edu.cu> escribió:

>  quiero enviar una consulta del tipo insert a la bd y resulta que lo que tengo
>  que insertar esta contenido en variables , quisiera saber si existe alguna funcion como
>  en php addslashes(), pero para python , pq lo estoy haciendo asi,
>
>  'insert
>  into apache(ip_cliente,fecha,hora,metodo,recurso,protocolo,codigo_estado,tamano,url)
>  values
>  ('+'\''+pica[0]+'\','+'\''+fecha[0]+'\','+'\''+hora+'\','+'\''+metodo[1]+'\','+'\''+pica[6]+'\','+'\''+protocolo[0]+'\','+'\''+pica[8]+'\','+'\''+pica[9]+'\','+'\''+url[1]+'\');'
>
>  y me esta dando problemas

Como respuesta específica, la forma de añadir "slashes" es con el
método .encode() con la codificación apropiada:

sql=r"cadena con \slashes".encode("string_escape")


Pero te aconsejo que intentes la "parametrización" de la consulta (lee
la documentación de la DB-API). Es más sencillo que ir construyendo la
consulta y es posible que el gestor de bases de datos trabaje más
optimizado:

sql="""insert into apache
(ip_cliente,fecha,hora,metodo,recurso,protocolo,codigo_estado,tamano,url)
values (%s,%s,%s,%s,%s,%s,%s,%s,%s)"""

params=(pica[0],fecha[0],hora,metodo[1],pica[6],protocolo[0],pica[8],pica[9],url[1])

cur.execute(sql,params)
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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