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