Professional Documents
Culture Documents
AVANZADAS
Sesión 21 – Capa de abstracción de base de
datos
Capa de abstracción de base de
datos
En la ultima sesión vimos el ejemplo de lo que
ya no deben hacer desde ahora
<html>
<body>
<table>
<tr>
<td>Nombre</td>
<td>Paterno</td>
<td>Materno</td>
</tr>
<?php
mysql_connect ( 'localhost', 'user', 'password' );
mysql_select_db ( 'alumnos' );
$results = mysql_query ( 'select nombre, paterno, materno from alumnos order by paterno,
materno, nombre' );
Bootsrap
Altausuario.php
Busquedausuario.php
Archivo4.php
archivo[n].php
Capa de abstracción de base de
datos
Para fines del ejemplo anterior, nuestro
archivo bootstrap contendría la rutina de
conexión a base de datos
<?php
mysql_connect ( 'localhost', 'bda', 'bda' );
mysql_select_db ( 'bda' );
?>
Capa de abstracción de base de
datos
Y en nuestro archivo principal, solo lo
incluiremos antes de hacer cualquier otra cosa
<?php
require_once 'bootstrap.php';
?>
<html>
<body>
<table border="1" cellpadding="3" cellspacing="1">
<tr>
<td>Nombre</td>
<td>Paterno</td>
<td>Materno</td>
</tr>
<?php
Java PHP C# …
SGBD
$server = 'localhost';
$user = 'bda';
$pwd = 'bda';
$dbname = 'bda';
$db = NewADOConnection('mysql');
foreach ($results as $row) { //solo posible con PHP5, con PHP4 habria que usar $results->FetchRow()
echo <<<EOL
<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$row[2]}</td></tr>
EOL;
}
?>
</table>
Capa de abstracción de base de
datos
Con lo anterior ya implementamos una capa de
abstracción de base de datos
Si necesitaramos migrar nuestra aplicación a otro
SGBD, solo tendriamos que cambiar el
argumento del comando $db =
NewADOConnection(); en nuestro archivo
bootstrap
La lista completa de SGBD soportadas por
ADODB está en
http://phplens.com/adodb/supported.databases.ht
ml
Capa de abstracción de base de
datos
$query = "
SELECT nombre,
apellidoPaterno,
apellidoMaterno
FROM alumnos
ORDER BY apellidoPaterno,
apellidoMaterno,
nombre
";
?>
<html>
<body>
<table border="1" cellpadding="3" cellspacing="1">
<tr>
<td>Nombre</td>
<td>Paterno</td>
<td>Materno</td>
</tr>
<?php
foreach ( $results as $row ) {
echo <<<EOL
<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$row[2]}</td></tr>
EOL;
}
?>
</table>
Capa de abstracción de base de
datos
class Alumno {
private $db;
return $results;
}
}
?>
Capa de abstracción de base de
datos
require_once 'Alumno.php';
$results = $alumno->getAlumnos();
?>
<html>
<body>
<table border="1" cellpadding="3" cellspacing="1">
<tr>
<td>Nombre</td>
<td>Paterno</td>
<td>Materno</td>
</tr>
<?php
foreach ( $results as $row ) {
echo <<<EOL
<tr><td>{$row[0]}</td><td>{$row[1]}</td><td>{$row[2]}</td></tr>
EOL;
}
?>
</table>
Capa de abstracción de base de
datos
El concepto de crear una clase que se
dedique a administrar el acceso a la
información de una tabla dentro de una base
de datos se le conoce como Object Relation
Mapping (ORM)
En las siguientes sesiones veremos como
implementar correctamente el concepto de
ORM y sus ventajas
Ing. Miguel Angel Ibarra Romero
© 2011 Creative Commons Atribución-
NoComercial-Compartir Igual 2.5 México.
http://creativecommons.org/licenses/by-nc-
sa/2.5/mx/