Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2006, 16:06
DjNelson
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 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)