From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | "carbonarac(at)cantv(dot)net" <carbonarac(at)cantv(dot)net> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: ayuda con el uso de OID de una tabla |
Date: | 2004-06-04 19:15:08 |
Message-ID: | 20040604191508.GA24214@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Fri, Jun 04, 2004 at 01:19:35PM -0400, carbonarac(at)cantv(dot)net wrote:
> El enlace de las dos tablas lo hago en mitable3, donde solo estan
> doc_id(varchar(15) y den_id integer, como claves ajenas (foraneas,
> externas,etc), a traves de un insert en el mismo formulario:
>
> <?php
> if ($consultar)
> { #consulta doc_id de mitabla1
> $dbname="dbname=miBD";
> $conexion=pg_connect($dbname);;
> $sql="select nombre,apellido from mitabla1 where doc_id=$doc_id;";
> /*$doc_id es la variable del formulario*/
> $fila=pg_exec($conexion,$sql);;
> $nombres=pg_fetch_array($fila,0);;
> pg_close($conexion);
> }
> ?> /* esto funciona bien*/
> ...
> <?php
>
> if($continuar)
> { #insercion de datos en mitabla2
> $dbname="dbname=habitantes";
> $conexion=pg_connect($dbname);
> $sql_ins_den="insert into
> denuncia
> values('$sector','$exp_mot');";
> $ins=pg_exec($conexion,$sql_ins_den);;
> pg_close($conexion); /* esto funciona bien */
>
> $oid=pg_getlastoid($ins);;
> echo ("$oid"); /* verifico con psql...coincide = funciona bien */
>
> $conexion=pg_connect($dbname);
> $sql_con_den="select den_id from denuncia where oid=$oid";
> $c_den_id=pg_exec($conexion,$sql_con_den);;
> echo ("$c_den_id"); /* aqui me arroja: Resource id #4... ni cerca */
> $den_id=$c_den_id;
> pg_close($conexion);
> ...
> }
Olvidate de pg_getlastoid(). Lo que necesitas es obtener el valor de la
secuencia. SELECT currval('denuncia_den_id_seq') y usas ese valor para
hacer el SELECT. Es muy mala idea usar los OIDs como valores de
referencia.
Y por supuesto no puedes usar un resultado como si fuera una variable
escalar. Aplicale pg_fetch_array() a $c_den_id para obtener el valor
que te interesa.
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Ciencias políticas es la ciencia de entender por qué
los políticos actúan como lo hacen" (netfunny.com)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2004-06-04 19:17:20 | Re: pg_dump pg_dumpall pg_restore |
Previous Message | Edwin Quijada | 2004-06-04 18:11:01 | Re: consulta bytea |