ADOdb es una librería de clases para acceder a bases de datos para PHP que posee un funcionamiento similar a Microsoft ADO. ADOdb ofrece un acceso estándar a diversos SGBD, ya que oculta (encapsula) las diferencias. En la actualidad, ADOdb ofrece acceso a MySQL, Oracle, Microsoft SQL Server, Sybase, Sybase SQL Anywhere, Informix, PostgreSQL, FrontBase, SQLite, Interbase (Firebird y las variantes de Borland), Microsoft Foxpro, Microsoft Access, ADO, IBM DB2, SAP DB y ODBC.
Las clases principales que se emplean en ADOdb son ADOConnection y ADORecordSet. La clase ADOConnection posee las siguientes propiedades y métodos principales:
- Close(): cierra la conexión y libera toda la memoria y recursos ocupados.
- Connect(servidor, usuario, contraseña, baseDatos): abre una conexión con una base de datos.
- ErrorMsg(): devuelve una descripción del último error.
- ErrorNo(): devuelve el código del último error o 0 si no ha habido error.
- Execute(sentencia): ejecuta una sentencia SQL y devuelve un objeto ADORecordSet.
La clase ADORecordSet posee las siguientes propiedades y métodos principales:
- Close(): cierra el resultado y libera toda la memoria y recursos ocupados.
- EOF: devuelve true si el cursor interno ha superado la última fila del resultado y false en caso contrario.
- FieldCount(): devuelve el número de campos (columnas) en un resultado.
- fields: array que contiene la fila actual.
- GetRows(): devuelve todas las filas del resultado en forma de array bidimensional.
- MoveFirst(): mueve el cursor interno a la primera fila en el resultado.
- MoveNext(): mueve el cursor interno a la última fila en el resultado.
- RecordCount(): devuelve el número de filas en un resultado.
Para usar ADOdb en PHP es necesario incluir en el código el fichero adodb.inc.php en cada página donde se vaya a utilizar. Si emplea la directiva include_path del fichero php.ini, se puede evitar el tener que copiar los ficheros de ADOdb en cada sitio web o emplear rutas de acceso complicadas. La directiva include_path permite definir una lista de directorios donde las funciones require(), include(), fopen(), file(), readfile() y file_get_contents() buscarán los ficheros.
Por ejemplo, en XAMPP la directiva include_path está configurada como .;C:\xampp\php\pear\. El siguiente ejemplo muestra como realizar un acceso básico a una base de datos mediante ADOdb; para crear una conexión con la base de datos se puede emplear tanto NewADOConnection(driver) como ADONewConnection(driver), ya que ambos son sinónimos; en este ejemplo se ha activado la propiedad debug para mostrar información de depuración (como por ejemplo, la sentencia SQL que se ejecuta) y se emplea GetRows() para obtener todo el resultado en forma de array bidimensional que se imprime directamente con la función print_r():
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prueba básica con ADOdb</title>
</head>
<body>
<?php
include_once 'adodb/adodb.inc.php';
$con = NewADOConnection('mysql');
$con->debug = true;
$con->Connect('localhost', // El servidor
'wwwdata', // El usuario
'', // La contraseña
'biblioteca'); // La base de datos
// Ejecuta una sentencia SQL
$sentencia = 'SELECT * FROM libros';
$resultado = $con->Execute($sentencia);
echo "<pre>";
print_r($resultado->GetRows());
echo "</pre>";
$resultado->Close(); // Opcional
$con->Close(); // Opcional
?>
</body>
</html>
El siguiente ejemplo, un poco más elaborado, muestra en forma de tabla HTML el resultado de ejecutar una sentencia SQL; para ello recorre fila a fila y columna a columna el resultado:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prueba de SELECT con ADOdb</title>
</head>
<body>
<?php
include_once 'adodb/adodb.inc.php';
$con = NewADOConnection('mysql');
$con->Connect('localhost', // El servidor
'wwwdata', // El usuario
'', // La contraseña
'biblioteca'); // La base de datos
// Ejecuta una sentencia SQL
$sentencia = 'SELECT * FROM libros';
$resultado = $con->Execute($sentencia);
echo '<table><tr>';
echo '<th>IdLibro</th><th>Título</th><th>Resumen</th>';
echo '<th>Autor</th><th>Categoría</th><th>Editorial</th><th>Anyo</th>';
echo '</tr>';
// Recorre el resultado y lo muestra en forma de tabla HTML
while (!$resultado->EOF) {
echo '<tr>';
echo '<td>' . $resultado->fields['IdLibro'] . '</td>';
echo '<td>' . $resultado->fields['Titulo'] . '</td>';
echo '<td>' . $resultado->fields['Resumen'] . '</td>';
echo '<td>' . $resultado->fields['Autor'] . '</td>';
echo '<td>' . $resultado->fields['Categoria'] . '</td>';
echo '<td>' . $resultado->fields['Editorial'] . '</td>';
echo '<td>' . $resultado->fields['Anyo'] . '</td>';
echo '</tr>';
$resultado->MoveNext();
}
echo '</table>';
$resultado->Close(); // Opcional
$con->Close(); // Opcional
?>
</body>
</html>
Fuentes: iDESWEB
No hay comentarios:
Publicar un comentario