Estoy implementando un sistema de registro de alumnos en PHP5 / Postgres con tres capas, no estoy utilizando ningun framework o uno de esos otros chiches (quisiera toparme con estos problemillas primero). Mi consulta radica en la forma en que hago mis conexiones de base datos, si bien es cierto hay q dejar todo el peso de las conexiones a la capa de persistencia de datos, esto hace q abra y cierre las conexiones a cada rato.
Por ejemplo en el caso de cargar un objeto alumno haria:
Código PHP:
function buscarAlumno($codigo){
$con = new Conexion();
$con->conectarse();
// hago mi consulta
$con->query($sql)
$alumno = new Alumno();
$alumno->colegio = Colegio::buscarColegio($data["cod_colegio"]);
//este metodo internamente tambien abre y cierra una conexion;
$alumno->ciudad = Colegio::buscarCiudad($data["cod_ciudad"]);
//esta tambien
//... y cuantas tuviera
$con->cerrar_conexion();
// cerramos la conexion de al inicio
return $alumno;
}
Otro caso es este:
Código PHP:
function buscarAlumno($con,$codigo){
$alumno = new Alumno();
// hago mi consulta
$con->query($sql)
$alumno->colegio = Colegio::buscarColegio($con,$data["cod_colegio"]);
//usa la conexion ya disponible;
$alumno->ciudad = Colegio::buscarCiudad($con,$data["cod_ciudad"]);
//este tambien
//... y cuantas tuviera
return $alumno;
}
La pregunta del millon es esta...
¿Cual de las dos formas es la mas optima a utilizar?
¿Existe una tercera forma?
¿Que hay de los pool de conexiones.. me comentaban que evitaban estos problemas?
Esto ultimo no lo he investigado
Agredecere cualquier colaboracion.