Re: [Pgsql-ayuda] Asi se trabaja?

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: rodrigo miranda <rodrigonibaldo(at)terra(dot)cl>
Cc: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Asi se trabaja?
Date: 2004-01-24 17:32:33
Message-ID: 20040124173233.GA2935@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Sat, Jan 24, 2004 at 01:21:09PM +0000, rodrigo miranda wrote:

Hola,

Con respecto al codigo para Postgres todo está bien y es correcto, pero
el código PHP no es bueno. Dos sugerencias:

1. usa templates, no pongas HTML dentro del codigo PHP
(ej. smarty.php.net) No pongas nada de HTML fuera de un template,
por pequeño que sea.

2. verifica las condiciones que asumes cuando recibes algo.
Por ej. despues de pg_query(), verifica que $res es un resultado
(que la funcion no devuelve nulo), y que pg_num_rows es efectivamente
1.

1 $sql ="";
2 $sql .="Select calclenght('abcde')"; //llamo procedimiento
3 $res = pg_query($sql);
4 while($row=pg_fetch_array($res)){
5 $num = $row["0"]; //tomo el valor
6 echo $num; //lo desplego pantalla

La linea 1 es innecesaria y agrega ruido.

El comentario en la linea 2 es innecesario, de partida porque no llamas
al procedimiento ahi, sino que solo asignas el string SQL a una variable
para ejecutarla despues. Y en segundo lugar porque lo que haces es muy
sencillo y no necesitas un comentario para entenderlo. (Se aplica lo
mismo al resto de los comentarios de tu código. IMHO sería más útil un
solo comentario al principio del bloque de código indicando a grandes
rasgos qué es lo que quieres hacer)

Despues de la linea 3 deberia haber algo como
if (!$res) { error "no funciona la BD"; }
(no conozco bien la sintaxis de PHP para esto, pero esa es la idea)

Ademas, despues de eso deberia haber un
if (pg_num_rows($res) != 1) { error "no funciona la BD" };

La linea 5 no esta correctamente indentada.

Como ves, todos los comentarios apuntan mas que nada a usar un buen
estilo de código. Esto lleva a código más robusto y más mantenible.
(Recuerda que el código va a pasar más tiempo siendo mantenido que
siendo programado, por lo tanto este punto es muy importante)

Unas pocas costumbres como estas te pueden ayudar a construir
aplicaciones realmente buenas y no la basura estandar que se ve en PHP
por todos lados.

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La gente vulgar solo piensa en pasar el tiempo;
el que tiene talento, en aprovecharlo"

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2004-01-24 18:15:22 Re: [Pgsql-ayuda] Uso de tipos definidos por el usuario. TYPE
Previous Message rodrigo miranda 2004-01-24 17:23:10 Re: [Pgsql-ayuda] Asi se trabaja?