Re: Ayuda con campo BYTE y pg_unescape_bytea

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));

--

In response to

Browse pgsql-es-ayuda by date

  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