[Pgsql-ayuda] Asi se trabaja?

Alvaro Herrera alvherre@dcc.uchile.cl
Sat, 24 Jan 2004 14:32:33 -0300


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"