Foros del Web » Programando para Internet » PHP »

Abstraer el SGBD del código

Estas en el tema de Abstraer el SGBD del código en el foro de PHP en Foros del Web. Estoy haciendo una aplicación web y quería que pudiese usar distintos SGBD... Para ello elaboré la siguiente función pero me dí cuenta de que no ...
  #1 (permalink)  
Antiguo 09/02/2006, 16:06
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
Abstraer el SGBD del código

Estoy haciendo una aplicación web y quería que pudiese usar distintos SGBD...

Para ello elaboré la siguiente función pero me dí cuenta de que no estaba todo lo bien que debiera:

Código PHP:
function consultar($consulta){

include(
"datos_conexion.php");

    
//El problema está aquí y es que la consulta se puede ejecutar correctamente pero que devuelva 0 (0 es igual a false), entonces si la consulta no develve nada pero se ejecuta correctamente yo devuelvo un false, como si hubiera ocurrido un error, cuando en realidad no es así.
    
$resultado=mysql_query($consulta,$id_conexion);

    if (!
$resultado) return false;
    else{
        
$palabras=explode(" ",trim($consulta));
        
$datos=array();//Inicializamos el array
        
        
if (strtolower($palabras[0])=="select"){
            
$j=0;
            while (
$fila=mysql_fetch_row($resultado)){
                for (
$i=0;$i<count($fila);$i++)    $datos[$j][$i]=$fila[$i];
            
$j++;
            }
            return 
$datos;
        }
        elseif(
strtolower($palabras[0]=="insert")){
        
//Si el tipo de datos no es autonumerico mysql_insert_id deberia devolver 0 (que es igual a false)
            
if (mysql_insert_id($id_conexion)==0) return TRUE;
            else return 
mysql_insert_id($id_conexion);
        }
        else return 
true;
    }

En el archivo datos_conexion.php establezco la conexión a la bbdd...

Hay alguna manera más profesional de hacer esto o por lo menos hay alguna manera de arreglar este problema?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 10/02/2006, 03:27
 
Fecha de Ingreso: enero-2006
Mensajes: 22
Antigüedad: 18 años, 2 meses
Puntos: 0
Yo te recomiendo que uses la librería de abstración de la base de datos ADODB, echale un vistazo a adodb.sourceforge.net/.
Es lo más indicado para poder migrar en un futuro "facilmente" de una a otra base de datos.

Salu2.
  #3 (permalink)  
Antiguo 10/02/2006, 06:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Así es .. si quieres algo más "profesional" con buena documentación y bastantes funcionalidades (sobre todo acceso a vários motors de BBDD diferentes):

Adodb
http://adodb.sourceforge.net

Un saludo,
  #4 (permalink)  
Antiguo 10/02/2006, 09:35
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
Gracias por la info pero el problema es que tengo que diseñar yo esa capa de abstracción, o por lo menos lo preferiría así, ya que el software que estoy haciendo lo va ha revisar un profesor y no quería incluir código que no fuera mío...

De todas maneras igual puedo sacar algo de ese adodb.

Alguien podría indicarme de algún manual para aprender a programar con objetos en php?

Será muy distinto que con Visual .NET?

Saludos y gracias.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 10/02/2006 a las 09:43
  #5 (permalink)  
Antiguo 10/02/2006, 10:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Gracias por la info pero el problema es que tengo que diseñar yo esa capa de abstracción, o por lo menos lo preferiría así, ya que el software que estoy haciendo lo va ha revisar un profesor y no quería incluir código que no fuera mío...
Creo que un "profesor" debería entender que esto de la programación no se trata de "re-inventar" la rueda. Eso sí .. debes argurmentar por qué la usas, y entender 100% como sacarle máximo provecho . .incluso "observar" tal vez alguna falencia que pueda tener y más o menos conocer como funciona a nivel más basico (de métodos y demás).

Si yo fuera tu profesor te evaluaría no por usar Adodb .. sino por el punto fuerte de tu proyecto: tu aplicación .. lo que tenga que hacer, como afrontastes el proyecto y que vea que sepas que es "esa capa" de abstracción de BBDD y por qué la usas.

Otra cosa es que el "proyecto" en sí sea el desarrollo de una "capa de abastracción de BBDD" .. ahí .. bueno .. habrá que partir de cero.

Cita:
Alguien podría indicarme de algún manual para aprender a programar con objetos en php?

Será muy distinto que con Visual .NET?
No sé si hablamos del mismo "objeto" ... pero si tu estás estudiando (alguna carrera técnica o universitaria de Informatica o afin) sabras mejor que yo que la POO se basa en mucha teoría (paradigmas y temas afines). Si tu tienes bien claro esa teoría no tendrás problemas.

Luego viene la implementación de toda esa teoría en algún lenguaje .. PHP soporta POO, eso sí .. no soporta todos los standares de la POO que pueda implementar por ejemplo Java, de hecho PHP 4.x soporta bien poco de los standares de la POO y PHP 5.x algo más.

Un buen manual de introducción a la POO:
http://www.zonaphp.com/programacion-...bjetos-en-php/

Y te invito al sub-foro de PHP sobre POO.


Un saludo,
  #6 (permalink)  
Antiguo 12/02/2006, 10:26
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
Te doy la razón en todo lo que has dicho.

Saludos y gracias.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:40.