Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/08/2002, 02:55
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Re: $rows=mysql_num_rows($res);

Ya sabes, estamos aqui para ayudar ;)

Esto se empieza a complicar, porque posiblemente sea que $res no tiene un valor valido para esa funcion. Con lo cual el error estara en la parte del codigo donde se asigna el valor, es decir, cerca de donde llamas a la funcion. Como estas intentando crear codigo que sea independiente de la BD que uses, tienes que tener cuidado de mantener una coherencia con los accesos a la BD. Porque puede que postees el codigo donde asignas valor a $res, y el codigo no tenga ningun fallo ... salvo que sea para acceder a una BD que no sea del tipo definido en la variable.

Me explico. Si tu variable vale "Mysql", pero creas tu $res con funciones de Posgres, $res no tendra un valor valido para ninguna funcion mysql_.

Para evitar este tipo de problemas, lo que debes hacer es crear un conjunto de funciones (api) genericas (como la que nos has mostrado) y usarlas en todo momento para acceder a la BD. Otra solucion (bueno, la misma pero usando POO) es crear una clase "madre" que defina las funciones y atributos genericos para todas las BD y luego ir creando clases "hijas" para cada tipo de de BD (ya se, no es tan sencillo, pero este no es ni el lugar ni el momento para explicar conceptos de POO como abstracion,...).

Tanto para la version con funciones como para las clases, existen ya librerias "maduras" (probadas y testeadas por millones de usuarios), por ejemplo, phpLib.

Es buena idea hacer codigo portable, pero necesita mas tiempo para planificarlo y diseñarlo.

Aunque yo no sea el mas indicado (los comentarios brillan por su ausencia en mi codigo), hay que coger buenas constumbres en esto de la programacion y usar los comentarios sabiamente.

Bueno, creo que ya he escrito suficiente por lo menos para toda la semana, y teniendo en cuenta que estoy en el curro ...

Siento haber sido tan teorico.


Josemi

Aprendiz de mucho, maestro de poco.