Que es ADOdb?

17 09 2009

ADOdb es un conjunto de librerías de bases de datos para PHP y Python. Esta permite a los programadores desarrollar aplicaciones web de una manera portable, rápida y fácil. La ventaja reside en que la base de datos puede cambiar sin necesidad de reescribir cada llamada a la base de datos realizada por la aplicación, por ejemplo, si tenemos la mitad del proyecto con MySQL y por x,y o z motivos tenemos que pasarla a Oracle ¡ lo único que cambiamos es el controlador de acceso y conexión! .

Según el Sitio Oficial de ADOdb, son soportadas las siguientes bases de datos:

  • MySQL
  • PostgreSQL
  • Interbase
  • Firebird
  • Informix
  • Oracle
  • MS SQL
  • Foxpro
  • Access
  • ADO*
  • Sybase ASE
  • FrontBase
  • DB2
  • SAP DB
  • SQLite
  • Netezza
  • LDAP
  • generic ODBC and ODBTP

INSTALACIÓN:

  • En GNU/Linux

Abrimos el Gestor de paquetes Synaptic (o tu gestor de paquetes) e instalamos libphp-adodb o por consola:

$ sudo aptitude install libphp-adodb

Este paquete se instala por defecto en el directorio /usr/share/php/adodb, por consiguiente necesitamos hacer un enlace simbólico desde la carpeta /var/www/, para esto abrimos una consola y ejecutamos lo siguiente:

$ sudo ln -s /usr/share/php/adodb/ /var/www/adodb

Si es necesario le damos permisos de ejecución

$ sudo chmod  777 -R /var/www/adodb
  • En Windows

Puedes descargarla desde aquí, la descomprimimes, la renombras como “adodb” y la colocas en tu directorio del proyecto y listo.

Pero ¿Como usar ADOdb?.

CONEXIÓN A LA BASE DE DATOS

Para conectarnos a la base de datos creamos un archivo llamado conexion.php y lo configuramos según nuestros parámetros:

<?php

//Invocamos la librería ADOdb
require_once("adodb/adodb.inc.php");

$conServidor    = "localhost";
$conBaseDeDatos = "nombre_base_de_datos";
$conUsuario     = "usuario";
$conClave       = "clave";

/*
*Aquí especificamos el controlador que debe utilizar para la conexión
*MySQL: mysql
*/

$bd = NewADOConnection("mysql");
$bd->debug = false;
$bd->Connect($conServidor,$conUsuario,$conClave,$conBasededatos);

?>

FUNCIONES

Estas son las funciones basicas para cualquier tipo de acciones a una base de datos, podemos crear un archivo llamado bd_usuarios.php

<?php
/* Funcion de busqueda */
function buscar($bd, $arreglo)
{
  //Con prepare precompilamos la consulta
  $sql  =  $bd->Prepare("SELECT * FROM usuarios WHERE usuario = ? AND pass = ? ");
  //Ejecutamos la consulta y tomamos los datos en forma matricial
  $rs   =  $bd->GetAll($sql, $arreglo);
  //Devolvemos la matriz con los registros consultados
  return ($rs);
}

/* Funcion de listado */

function listar($bd)
{
  //Con prepare precompilamos la consulta
  $sql  =  $bd->Prepare("SELECT * FROM usuarios ORDER BY id ASC");
  //Ejecutamos la consulta y tomamos los datos en forma matricial
  $rs   =  $bd->GetAll($sql);
  //Devolvemos la matriz con los registros consultados
  return ($rs);
}

/* Funcion de insertar */

function insertar($bd, $arreglo)
{
  //Insertamos en la base de datos
  $rs   =  $bd->AutoExecute("tbl_usuarios", $arreglo, "INSERT");
  return ($rs);
}
/* Funcion de modificar */
function modificar($bd, $arreglo, $__codigo)
{
  /*
   * Recibimos en el arreglo los datos a modificar
   * El codigo es identificador de la fila o llave primaria
   *
   * Indicamos la tabla donde se va a modificar, los datos a modificar
   * y la accion UPDATE y decimos que el campo id de la fila de la tabla sea igual
   * al codigo recibido.
  */
  $rs   =  $bd->AutoExecute("tbl_usuarios", $arreglo, "UPDATE", "id = '".$__codigo_usuario."'");
  //retornamos true si se modifico con exito o false si se produjo algun error
  return ($rs);

}
?>

LLAMADO A LAS FUNCIONES

A continuación veremos como preparamos los datos para registrar/buscar/modificar en una base de datos

<?php

//incluimos el archivo con la conexion y las funciones
require_once 'conexion.php';
require_once 'bd_usuarios.php';

/* Busqueda */
//Definimos una variable tipo array con los datos recibidos de un formulario
//o cualquier tipo de dato
$reg = array();
$reg['Campo1_tabla'] = $_POST['campo_formulario´]
$reg['Campo2_tabla'] = $_POST['campo_forulario']

$rs = buscar($bd, $reg)
if ($rs)
  echo "Encontrado";
else
  echo "No se encontro el registro";

/* Funcion de listado */

$rs = listar($bd);
foreach($rs as $k => $fila)
{
  echo "Campo: ".$fila['nombre_campo o numero_posicion']."<br>\n";
}

/* Funcion de insertar */

//Definimos una variable tipo array con los datos recibidos de un formulario
//o cualquier tipo de dato

$reg = array();
$reg['Campo1_tabla'] = $_POST['campo_formulario´]
$reg['Campo2_tabla'] = $_POST['campo_forulario']

$rs =  insertar($bd, $reg)
if($rs)
  echo "Se registro correctamente";
else
  echo "Se produjo un error al guardar los datos";
/* Funcion de modificar */
$__codigo = $__codigo_de_la_fila_o_llave_primaria;

$reg = array();
$reg['Campo1_tabla'] = $_POST['campo_formulario´]
$reg['Campo2_tabla'] = $_POST['campo_forulario']

$rs =  modificar($bd, $reg, $__codigo)
if($rs)
  echo "Se Modifico correctamente";
else
  echo "Se produjo un error al modificar los datos";
?>

Espero que este super mini tutorial les sirva de ayuda y los guie un poco. Actualmente estoy trabajando en un ejemplo práctico con adodb tanto estructurado como orientado a objetos, así que les pido un poco de paciencia.

Cualquier inquietud puedes dejar un comentario.


Acciones

Information

3 responses

11 11 2009
Jorge Luis

Esta muy bieno su mi ni tutorial , en estos momentos lo voy aprobar, le agradeceria que pudiera ayudar con todo lo que tenga sobre ADODB conectandoce a postgres y con php, es que lo necesito , soy nuevo en el tema..

mi correo es jorgeluis163[arroba]gmail.com , aqui me puede escribir , gracias

29 03 2010
chents

Muy buena la conexion ADODB .. y si corre en mysql ..quisiera probarlo con el manejador de base de datos firebird pero no se como es la conexion me podrian ayudar porfavor… … saludoss

30 03 2010
argordmel

Aqui encuentras la lista de base de datos soportadas

http://phplens.com/adodb/supported.databases.html

Aqui colocas el driver a utilizar

$bd = NewADOConnection(“firebird”);

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: