[pgsql-ayuda] pg_exec

Bruno Unna bruno@iac.com.mx
Thu, 05 Nov 1998 14:58:41 -0600


Enrique Cárdenas Hoeflich wrote:
> 
> Estoy usando php para crear un contador de paginas...  secuencias en
> postgres para tal efecto...pero creo que no estoy usando adecuadamente
> pg_exec...o que debo de usar...el codigo es el siguiente:
> 
> <?php
> function fcont($cont)
> {
>         $q = "SELECT nextval('" . $cont . "');";
>         $qu = pg_exec ($dbcont, $q);
>         $row = 0;
>         print pg_numrows($qu);
>         if (pg_numrows($qu) > 0)  {
>             $data = pg_fetch_object ($qu, $row);
>             return $data->nextval;
>         }
>         else {    return "ERROR";
>         }
> }
> 
> $dbcont = pg_connect ("", "", "", "", "contadores");
> if (!$dbcont): ?>
>     <H1>Error al conectar la Base de Datos de Contadores</H1> <?
>     exit;
> endif;
> print fcont("prueba1");
> ?>
> 
> la secuencia es prueba1...y me muestra el siguente error...
> 
> Warning: 0 is not a PostgresSQL link index in contador.inc on line 5
> 
> Warning: 0 is not a PostgresSQL result index in contador.inc on line 7
> 
> Warning: 0 is not a PostgresSQL result index in contador.inc on line 8
> ERROR
> 
> El valor de $q resulta "Select nextval('prueba1');"
> 
> Alguien me puede hechar una manita???
> 
> Creo que en el ejemplo que nos presento Bruno en C usando secuencias esta la
> respuesta...pero perdi esa informacion...
> 
> Gracias....
> 

Enrique, yo creo que tu problema está en la variable $dbcont.

Las variables dentro de las funciones se vuelven locales a éstas.

Si quieres tener acceso, dentro de la funcion fcont, a la variable 
global $dbcont, debes declarar la variable como global. Algo así:

<?php
function fcont($cont)
{
	global $dbcont;      // <- ATENCION: esta es la linea
        $q = "SELECT nextval('" . $cont . "');";
        $qu = pg_exec ($dbcont, $q);
...


Suerte.
-- 
"Create like a god,                Bruno Unna <bruno@iac.com.mx>
 command like a king,                     Desarrollo de Software
 and work like a slave."                Internet de Alta Calidad
             Kawasaki                   PGP public key available
--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : cancelacion pgsql-ayuda