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