Hola a todos,
Estoy desarrollando una aplicación en la que utilizo un patrón dao que me proporciona, para cada clase, una interfaz de:
alta
baja
consulta
modificacion
Vease, para un Usuario tengo los métodos
persistirUsuario
deleteUsuario
getUsuario
modificarUsuario
Hasta ahí todo bien, pues son todo parámetros estrictos, el tema es que a medida que crece la aplicación, necesito la posibilidad recuperar LISTAS de usuarios (por ejemplo, hablo de usuarios como podría hablar de productos, por ejemplo)
No hay problema en recuperar una lista global, pues es simplemente un método que los recupere todos, ahora bien, cuando quiero recuperar un usuario específico, vease, usuario cuyo correo sea "[email protected]", es cuando me encuentro con el problema, pues necesito un método que recupere usuario por correo exacto, esto sería viable si luego no me surgiese la necesidad de hacer un método que sea recuperar usuarios cuyo correo sea like "@gmail.com", pero me surge! Mi solución fue, en el dao, crear un método que sea findByCriterio, que ejecuta una consulta tal que SELECT * FROM Usuarios WHERE $criterio, esto me facilita todo, pues puedo recuperar listas u objetos simples, pero pierdo el control de la inyeccion que tenía con las sentencias preparadas para mi get delete persistir y modificar...
Se os ocurre alguna idea?
este sería el código de la operación del dao
function bddGetListaUsuariosByCriterio($unCriterio){
$dbconfig = new DBConfig();
$dbconfig = $dbconfig->db_connect();
$consulta = "SELECT id FROM ". TABLA_USUARIOS ." WHERE $unCriterio";
//Debug
if (DEBUG_QUERIES == true)
echo "<br /> DEBUG: " .$consulta . " <br />";
$resource = mysql_query($consulta);
$listaUsuarios = array();
if ($resource != false){
$i = 0;
while ($usuarioActual = mysql_fetch_assoc($resource)){
$unUsuario = getUsuario($usuarioActual['id']);
$listaUsuarios[$i++] = $unUsuario;
}
}
return $listaUsuarios;
}
Un saludo!
Carlos