Database wrapper para Jaws
- 2 April, 4:41pm |
- general
Pues el día de hoy TODO estuvo de hueva, así que en una clase libre me puse a compilar mentalmente unas ideas para Jaws: Un Wrapper para la base de Datos.
La idea del Wrapper (db_wrapper) es poder soportar muchos DBMS para ejecutar un query y tomar los datos, así como usar un mismo nombre para las funciones de todos los DBMS, por ejemplo: fetch_row, query, connect, data, data_field, etc.
Otra de las caracteristicas del wrapper es que 'valida' a la clase del DBMS, si no cumple con los requisitos mínimos manda un error y termina la aplicación.
Aparte, si el query es un SELECT, la forma en como va a 'juntar' todos los datos en un arreglo es un formato más sencillo de analizar y de recorrer, por ejemplo:
$sql = "SELECT * FROM registry";
//Ejecutamos el query, lo que hace query es encontrar un SELECT en la instrucción y si lo encuentra pues toma datos y sino.. pues no.
$GLOBALS["app"]->db2->query($sql);
//Ahora, se recorre todo el arreglo, es parecido a como se hacen en mysql y en adodb, ya que el while no termina hasta que haya recorrido todos los valores.
while($row = next($GLOBALS["app"]->db2->data())) {
//Imprime el valor
echo $row["value"]."
";
}
Y en el Wrapper se llaman a las funciones correspondientes del Driver, por ejemplo:
$function = FUNCTION;
$this->driver->$function($sql);
}
Sencillo, no?, y claro, para tomar un valor:
$GLOBALS["app"]->db2->query($sql);
//Con la diferencia que no hay while, sino simplemente se pide el campo 'value'
echo $GLOBALS["app"]->db2->field("value");
Con su correspondiente función:
return $this->driver->data[$field_name];
}
, en cuanto vea a ion le voy a presumir
.