From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Alfredo Zea García Calderón <alfredoaal(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Ayuda con campo BYTE y pg_unescape_bytea |
Date: | 2010-05-17 14:46:24 |
Message-ID: | 1274107104-sup-2807@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Excerpts from Alfredo Zea García Calderón's message of vie may 14 01:48:59 -0400 2010:
> *$file = "C:\Users\Alfredo\Desktop\imagen.jpg";*
>
> *$data = file_get_contents($file);
>
> $escaped = pg_escape_bytea($data);*
> **
> *$t='"';*
> *$cod = "0";*
> **
> *$consulta = "UPDATE preguntas SET ".$t."bArchiv".$t."=E'$escaped'::bytea
> WHERE ".$t."cCodPre".$t."='$cod'";*
Es bastante horrible esto. Es más fácil escapar las comillas dobles
así:
$consulta = "UPDATE preguntas SET \"bArchiv\"=E'$escaped'::bytea WHERE \"cCodPre\"='$cod'";
Me imagino que nunca has oído hablar de "inyección de SQL", ¿cierto? Te
recomiendo que estudies qué significa. Te aconsejo usar algo como esto:
$result = pg_prepare($conexion_bd, "update_del_bytea",
"UPDATE preguntas SET \"bArchiv\" = $1 WHERE \"cCodPre\" = $2");
$result = pg_execute($conexion_bd, "update_del_bytea",
array(file_get_contents($file), $cod));
--
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2010-05-17 14:48:59 | Re: Optimizacion de select(pregunta de novato) |
Previous Message | Felix Iván Romero Rodríguez | 2010-05-17 11:47:08 | Inicio dudoso |