Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/08/2013, 11:26
Avatar de cuasatar
cuasatar
 
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Capa para la abstraccion de consultas a diferentes bases de datos

Cita:
Iniciado por asdmaster Ver Mensaje
Bueno estoy un tanto enrredado con este tema asi que tratare de explicarme lo mejor que pueda.

Bueno estoy trabajando mis consultas con el driver PDO
y lo que ahora quiero es crear una capa que me permita armar las consultas es decir
no quiero escribir codigo diferente para MySQL, Postgres, etc.
no se si hacer esto desde cero creando una clase con meodos tipo insert, update, etc.
que me vayan generando el codigo para las diferentes bases de datos.

Pero lo que mas me interesa es conocer las tecnologias ya disponibles.

Estube leyendo algo acerca de doctrine, pero no parece ser lo que busco, creo que va mas por el lado de DBA pero como dije anteriormente estoy muy enredado y agradeceria me orientaran en este tema.

Bueno, yo no soy ni mas ni menos el experto en el tema pero la cosa funciona mas o menos asi:
Código PHP:
$dsn 'mysql:dbname=testdb;host=127.0.0.1';
$usuario 'usuario_bd';
$contraseña 'contraseña_bd';

try {
    
$gbd = new PDO($dsn$usuario$contraseña);
} catch (
PDOException $e) {
    echo 
'Falló la conexión: ' $e->getMessage();

Como puedes ver cuando creas una conexión para conectar una base de datos le estas especificando la base de datos en PDO. Si requieres utilizar mas bases de datos debes revisar la documentación de PHP. De mi poca experiencia al respecto se que para postgreSQL es necesario ademas añadirle el puerto pero basicamente una vez le indiques ya sera transparente la situación porque ya no deberas utilizar funciones nativas de PHP para usar mysql, postgreSQL, etc. Simplemente la cosa es decidir que base de datos utilizaras y en función de la misma podrias utilizar un switch case para decidir

ejemplo:

case mysql

(variables para iniciar como mysql)

case postresql

(variables para iniciar como postgresql)

No se si quedo clara la explicación o alguien con mas experiencia nos comparte sus ideas para mejorar y aprender.
__________________
Blog de humor http://elcuasatar.net63.net/