MS Access en
PHPPHP puede acceder a información contenida en la base de datos Access, aunque parece ser que su rendimiento es inferior a otras bases de datos porque el acceso se realiza a través de una conexión ODBC.
ODBC (Open Database Connectivity) es una API de conexión a bases de datos.
Para crear una conexión ODBC a una base de datos Access, hay que abrir el Administrador de orígenes de datos ODBC mediante el menú Inicio > Panel de control > Herramientas administrativas > Orígenes de datos (ODBC). Una vez abierto el Administrador de orígenes de datos ODBC, hay que elegir la pestaña "DSN de sistema":

En la pestaña "DSN de sistema" hay que pulsar el botón "Agregar..." y elegir el controlador "Microsoft Access Driver (*.mdb)" :

Se abrirá una ventana de configuración en la que hay que hacer clic en el botón "Seleccionar..."...

... y elegir la base de datos con la que se quiere conectar:

A continuación hay que escribir el nombre y la descripción que le queramos dar al origen de datos y hacer clic en el botón "Aceptar".

En la pestaña "DSN de sistema" aparecerá el nuevo origen de datos:

Volver al principio de la página
Existen una serie de funciones ODB con una sintaxis y comportamiento similar a las funciones MYSQLI, aunque la sintaxis de las consultas debe ser la que admite MS Access.
La función para conectar con la base de datos es odbc_connect($dsn, $usuario, $password), que devuelve un identificador de enlace que se utiliza en todas las consultas posteriores.
En el ejemplo siguiente, la variable $db almacena el identificador de enlace.
<?php
$db = odbc_connect('db1', '', '');
if (!$db) {
print "<p>Imposible conectarse con la base de datos.</p>";
exit();
}
?>
|
Si no se puede establecer la conexión con la base de datos, puede deberse a que la base de datos no esté funcionando, a que los datos de usuario no sean correctos o a que no esté activada la extensión odbc (en Windows está incluido siempre).
Volver al principio de la página
Una vez realizada la conexión a la base de datos, las operaciones se realizan a través de consultas.
La principal función para efectuar consultas es odbc_exec($db, $consulta). Dependiendo del tipo de consulta, la función devuelve un valor lógico o un recurso.
Volver al principio de la página
Por escribir
En caso de que el resultado de una consulta sean uno o varios registros, se accede a cada uno de ellos mediante la función odbc_fetch_array($result, [, $numero_fila]).
El ejemplo siguiente muestra cómo se pueden listar todos los registros de una tabla ('db1' es el nombre de la conexión odbc, 'gente' es el nombre de la tabla y 'nombre' y 'apellidos' son campos de la tabla 'gente'):
<?php
$db = odbc_connect('db1','','');
if (!$db) {
exit('Error en la conexión a la base de datos');
} else {
$consulta = "SELECT * FROM gente";
$result = odbc_exec($db,$consulta);
if (!$result) {
exit("Error en la consulta");
} else {
print "<table border=\"1\">\n <tr>
<th>Nombre</th>\n <th>Apellidos</th>\n </tr>\n";
while ($valor = odbc_fetch_array($result)) {
$nombre = $valor['nombre'];
$apellidos = $valor['apellidos'];
print " <tr>\n <td>$nombre</td>\n <td>$apellidos</td>\n </tr>\n";
}
odbc_close($db);
print "</table>\n";
}
}
?>
Para liberar el recurso que almacena los resultados de la una consulta se utiliza la función odbc_free_result($result).
Para cerrar la conexión con la base de datos se utiliza la función odbc_close($db).
Aunque existe una función odbc_num_rows($result) que devuelve el número de filas devueltas por una consulta, esta función no funciona con MS Access, por lo que para averiguar el número de filas es necesario realizar una consulta especial.
El ejemplo siguiente muestra cómo contar los registros de una tabla ('db1' es el nombre de la conexión odbc, 'gente' es el nombre de la tabla):
<?php
$db = odbc_connect('db1','','');
if (!$db) {
exit('Error en la conexión a la base de datos');
} else {
$consulta = "SELECT COUNT(*) as numero FROM gente";
$result = odbc_exec($db, $consulta);
if (!$result) {
exit("Error en la consulta");
} else {
$valor = odbc_fetch_array($result);
print "<p>Hay $valor[numero] personas en la agenda.</p>";
}
}
?>
Volver al principio de la página
Esta página forma parte del curso "Páginas web con PHP" disponible en http://www.mclibre.org
Esta obra está bajo una licencia de Creative
Commons.