javoaxian cambió a: javoaxian.me
Este blog se mantendrá como histórico del nuevo javoaxian.me. Por tal motivo, sólo serán creados post que harán referencia a los del nuevo blog. Si hay dudas y comentarios, favor de hacerlos en javoaxian.me.

viernes, 23 de mayo de 2008

ADOdb para PHP

Para quienes apenas van empezando a programar en PHP o en su defecto necesitan de alguna biblioteca para conectarse a base de datos que les funcione de la misma manera para diversos manejadores de bases de datos, ADOdb para PHP es una buena alternativa.

Hace ya algunos años el buen JCLTOL me pasó la referencia a esta biblioteca, la he usado con diversos manejadores de bases de datos, entre los que se encuentran PostgreSQL, MySQL, Oracle y Sybase y debo mencionar que me ha funcionado bastante bien. En algunos casos como sybase me surgieron algunos problemitas pero nada que no se pudiera solucionar.

Las principales ventajas que le he encontrado ha esta herramienta son:

  • Podemos conectarnos a diversos manejadores de bases de datos entre los cuales se encuentran: MySQL, PostgreSQL, Interbase, Firebird, Informix, Oracle, MS SQL, Foxpro, Access, ADO, Sybase, FrontBase, DB2, SAP DB, SQLite, Netezza, LDAP, y los genericos ODBC, ODBTP.
  • Usamos casi la misma funciones para todos los manejadores de bases de datos. (Digo casi porque para manipular campos blob, clob hacen algunas diferencias).
  • Permite migrar una aplicación de una base de datos a otra sin tantos problemas. (Esto depende también en gran medida de usar campos y funciones estandar en SQL y no sintaxis especial de cada manejador de base de datos).
  • Cuenta con buena documentación.
  • Permite manejar las sesiones de PHP en nuestra base de datos y no en el directorio /tmp que es el que se encuentra por default.
  • La forma de usarlo es muy sencilla.
  • Cuenta con documentación en español.
  • Permite crear paginaciones.
  • Entre otra muchas otras cosas.

La forma de instalación es muy sencilla. Deberemos bajar el archivo desde su página de descargas y presionar en la opción Download from SourceForge.

Aquí nos aparecerán 3 archivos, uno para compatibilidad entre php 4 y 5, otro para compatibilidad únicamente para php 5 y otro con compatibilidad para python. Deberemos decidir cual bajar.

En mi caso yo bajo el de compatibilidad para php 4 y 5 ya que todavía tenemos que trabajar en algunos casos con php 4.

Una vez que hayan descargado el archivo deberán descomprimirlo, de preferencia en alguno de los directorios de su proyecto para que cuando lo migren vaya incluida esta biblioteca.

La versión en el momento de hacer este documento es la 4.98 y el archivo que descargué fue el adodb489.tgz.

Para descomprimirlo ejecutamos esto:

javoaxian@sky:~$ tar -xzvf adodb489.tgz

Esto nos creará el directorio adodb.

Ahora en nuestros programas donde deseemos conectarnos a alguna base de datos bastará con incluirlo con una instrucción include, include_once, require o require_once.

include("/ruta/adodb/adodb.inc.php");

Para concluir, explicaré como conectarnos a nuestra una base de datos. Esto es muy sencillo, lo primero que haremos será crear un objeto de la conexión especificando el manejador de base de datos que vamos a usar. Para este caso usaremos oracle.

$bd = NewADOConnection('oci8');

Ahora ejecutaremos la instrucción para conectarnos al manejador, pasandole los argumentos de conexión a la base de datos:

$conexion = $bd->Connect("servidor","usuarioBD","contraseniaBD","nombreBD"));

Esto nos debe conectar a la base de datos que especificamos.
Ahora cerrar nuestra conexión, bastará con ejecutar lo siguiente:

$conexion->Close();

En documentos posteriores trataré de mostrar ejemplos de como usar ADOdb para PHP.

8 comentarios:

Anónimo dijo...

Hola JavoAxian
Quisiera saber que problemas hay en la implementacion de ADODB para Sybase.

Muchas gracias

javoaxian dijo...

Hola Roberto, uno de los problemas que recuerdo es que no funcionaba la función selectLimit.

Otra es cuando obtienes el valor de una consulta puedes obtener el valor de esta manera $query->fields[0] o $query->fields['nombre_campo'], si no mal recuerdo en sybase únicamente funcionaba la primera opción.

Saludos!!!

Anónimo dijo...

hola JavoAxian

yo necesito conectar php con una bd oracle, pero lo he intentado con adodb y me esta mostrando estos errores Warning: include(adodb/adodb.inc.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\est.php on line 8

Warning: include() [function.include]: Failed opening 'adodb/adodb.inc.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\est.php on line 8

Fatal error: Call to undefined function NewADOConnection() in C:\AppServ\www\est.php on line 10

estoy utilizando php 5....
y oracle 9i

javoaxian dijo...

Hola retaque:

Viendo el mensaje de error, lo que te está indicando, es que no encuentra la ruta correcta donde se encuentra el archivo adodb.inc.php, verifica en tu archivo est.php en la línea 8 que tu include haga bien referencia a donde debe encontrar el archivo adodb.inc.php.

Anónimo dijo...

Hola disculpa, un ejemplo por fa de como manipular datos utilizando adodb y smarty.

Gracias

javoaxian dijo...

Hola!!!

No tengo un ejemplo con Smarty porque regularmente no lo uso, pero las pocas veces que lo he usado no es complicado integrarlo, ya que la parte donde usas adodb es en la capa de la lógica de la aplicación y no en la capa de la interfaz de usuario que es donde usas más smarty.

Checa estos links, son enfocados al uso de smarty pero después la integración de adodb no debería causarte ningún problema.

PHP en castellano
Smarty

Anónimo dijo...

Hola, esta muy bueno el blog.

Saludos.

Anónimo dijo...

muy bueno el blog, pero tengo un problema como hago para usar adodb con db2. gracias