ADOdb

ADOdb
Información sobre la plantilla
Parte de la familia Base de Datos
34,5 KB
Paquete de librerías para PHP y Python
3,1 KB

ADOdb Es un paquete de librerías para PHP y Python de bases de datos que permite a los programadores crear aplicaciones Web de manera que puedan ser extraídos y/o introducidos datos desde o hacia una base de datos.
El rasgo principal reside en que la de bases de datos puede ser cambiada sin ser necesario que se tenga que reescribir el código del proyecto en cuestión, lo que ayuda a la migración por determinada causa del origen de los datos.
Está liberada bajo la licencia BSD-LGPL aunque los creadores afirman que en caso de conflicto predominaría la licencia BSD.
Esta capa de abstracción permite realizar conexiones a distintos tipos de bases de datos ya sean libres o bajo licencia propietaria tal es el caso de MySQL que sin dudas es a la que mayores aportes se le han agregado, Oracle, Microsoft SQL Server, Sybase, Sybase SQL Anywhere, Informix, PostgreSQL, FrontBase, SQLite, Interbase (con versiones de Firebird y Borland), Foxpro, Access, ADO, DB2, SAP DB y ODBC. Vale aclarar que si existe mucha compatibilidad de parte de ADOdb, es debido a los aportes de la comunidad de software libre. En algunos de los casos antes mencionados la librería aún se encuentra en fase de prueba o no están concluidos los driver que permiten la conexión con dichas bases de datos.

ADOdb y Bases de datos

Tabla demostrativa de las bases de datos a la que puede establecer conexión ADOdb y algunos parámetros comparativos en entre ellas.

Nombre Probado Base de datos RecordCount() utilizable Prerequisitos Sistemas operativos
access B Microsoft Access/JET. Se necesita crear una instancia de ODBC DSN. S/N ODBC Windows
ado B

Es el ADO genérico, no se puede cambiar para bases de datos específicas. Permite DSN sin conexión, para mejorar el rendimiento se recomienda el uso de un proveedor de OLEDB. ADO es la clase base de todos los driver de este tipo.

En dependencia de la base de datos ADO or OLEDB provider Windows
ado_access B Microsoft Access/JET usando ADO.  Permite DSN sin conexión, para mejorar el rendimiento se recomienda el uso de un proveedor de OLEDB. S/N ADO or OLEDB provider Windows
ado_mssql B Microsoft SQL Server usando ADO.  Permite DSN sin conexión, para mejorar el rendimiento se recomienda el uso de un proveedor de OLEDB. S/N ADO or OLEDB provider Windows
db2 C Usa extensiones especificas de PHP para db2 para mejorar su funcionamiento. S/N DB2 CLI/ODBC interface

Unix y Windows. Requiere el cliente IBM DB2 Universal Database.

vfp A Microsoft Visual FoxPro. Se necesita crear una instancia de ODBC DSN. S/N ODBC Windows
fbsql C FrontBase. S ?

Unix y Windows

ibase B Interbase 6 o anterior S/N Cliente de Interbase Unix y Windows
firebird B Versión de FireBird para Interbase. S/N Cliente de Interbase Unix y Windows
borland_ibase C Versión de Borland para Interbase. 6.5 superior. S/N Cliente de Interbase Unix y Windows
informix C Driver genérico de Informix.Se usa para Informix 7.3 o superior. S/N Cliente de Informix Unix y Windows
informix72 C Base de datos de Informix anterior a Informix 7.3 que no soporta la clausula SELECT FIRST. S/N Cliente de Informix Unix y Windows
mssql A

Microsoft SQL Server 7 ys superior. Además trabaja con MS SQL 2000. No devuelve segundos de DateTime para PHP.

S/N Cliente Mssql

Windows.

mssqlpo A

Microsoft SQL Server 7 ys superior. Además trabaja con MS SQL 2000. No devuelve segundos de DateTime para PHP. La diferencia con mssql es la sustitución del operador || por '+'

S/N Cliente Mssql

Unix y Windows.

mysql A MySQL sin soporte de transacción. S Cliente MySQL Unix y Windows
mysqli B Para nuevas versiones de API's de php5 S MySQL 4.1+ Cliente Unix y Windows
mysqlt o maxsql A

MySQL con soporte para transacciones.

S/N Cliente MySQL Unix y Windows
oci8 A Oracle 8/9. S/N Cliente Oracle Unix y Windows
odbc_mssql A Usa ODBC para laconexión con MSSQL S/N ODBC Unix y Windows.
odbc_oracle C Usa ODBC para laconexión con Oracle S/N ODBC Unix y Windows.
odbtp_unicode C ODBTP soporte UNICODE S/N ODBTP Unix y Windows
oracle C Implementa una vieja versión de una API's de Oracle 7 S/N Cliente Oracle Unix y Windows
pdo C Driver genéricos de PDO para php5 S Drivers específicos y extensiones de PDO Unix y Windows.
postgres A Driver genérico para base de datos PostgreeSQL. S Cliente PostgreSQL Unix y Windows.
postgres64 A Para PostgreSQL 6.4 y anterior que no soporte la clausula LIMIT. S Cliente PostgreSQL Unix y Windows.
postgres7 A Para PostgreSQL 7 y posterior que soporte la clausula LIMIT. S Cliente PostgreSQL Unix y Windows.
postgres8 A Ibdem a postgres7 S Cliente PostgreSQL Unix y Windows.
sqlite B SQLite. S -

Unix y Windows.

sybase C Sybase. S/N Cliente Sybase

Unix y Windows.

Leyenda

En la columna de “Probado” cada letra indica la amplitud de prueba a la que ha sido sometido cada driver.
A: Bien probado y usado por la comunidad.
B: Probado y utilizable pero con algunos rasgos que pueden no estar implementados.
C: Están en experimentación o actualmente los usuarios están contribuyendo. Pueden no soportar completamente las características de ADOdb.

Los valores de S/N, S O N indican la posibilidad de utilizar el contador de registros de la base de datos.

Uso de ADOdb para algunas bases de datos

MySQL

Pasando cuatro parámetros

$conn = &ADONewConnection('mysql'); 
$conn->PConnect('localhost','userid','password','database');

mediante DSN

$dsn = 'mysql://user:pwd@localhost/mydb'; 
$conn = ADONewConnection($dsn);

mediante DSN persistente

$dsn = 'mysql://user:pwd@localhost/mydb?persist'; 
$conn = ADONewConnection($dsn);

o a través de banderas(flags)

$pwd = urlencode($pwd);
$flags =  MYSQL_CLIENT_COMPRESS;
$dsn = "mysql://user:$pwd@localhost/mydb?persist&clientflags=$flags";
$conn = ADONewConnection($dsn);

PDO

PDO solo funciona con php5 y permite cadenas de conexión de drivers específio

$conn =& NewADOConnection('pdo');
$conn->Connect('mysql:host=localhost',$user,$pwd,$mydb);
$conn->Connect('mysql:host=localhost;dbname=mydb',$user,$pwd);
$conn->Connect("mysql:host=localhost;dbname=mydb;username=$user;password=$pwd");


También es posible usar el mecanismo de DSN de forma similar a MySQL

$conn =& NewADOConnection("pdo_mysql://user:pwd@localhost/mydb?persist");

PostgreSQL

PostgreSQL 7 y 8 permiten el estilo estandard de llamado a conexión,

$conn = &ADONewConnection('postgres');
	$conn->PConnect('host=localhost port=5432 dbname=mary');

El clásico de cuatro parámetros,

$conn->PConnect('localhost','userid','password','database');


O mediante DSN:

$dsn = 'postgres://user:pwd@localhost/mydb?persist'; 
$conn = ADONewConnection($dsn);


Interbase/Firebird

Se define la base de datos en el parámetro

$host
$conn = &ADONewConnection('ibase'); 
	$conn->PConnect('localhost:c:\ibase\employee.gdb','sysdba','contraseña');

o se puede definir mediante DSN

$dsn = 'firebird://user:pwd@localhost/mydb?persist&dialect=3'; 
$conn = ADONewConnection($dsn);

SQLite

Sqlite crea una base de datos que no existía y la toma como el repositorio de los datos en cuestión

$conn = &ADONewConnection('sqlite'); 
$conn->PConnect('c:\path\to\sqlite.db');

o mediante DSN

$path = urlencode('c:\path\to\sqlite.db');
$dsn = "sqlite://$path/?persist"; 
$conn = ADONewConnection($dsn);


Capas encapsuladas

Para el funcionamiento de un proyecto que use la librería ADOdb es casi inevitable el uso de objetos que permitan la conexión con el repositorio de los datos a usar, y que además hacen que la misma pueda ser leída por el sistema de forma más rápida y eficas, entre las capas o funciones más usadas están:

  • Connect,
  • PConnect,
  • NConnect
  • Execute,
  • CacheExecute
  • SelectLimit,
  • CacheSelectLimit
  • MoveNext,
  • Close
  • qstr,
  • Affected_Rows,
  • Insert_ID


Véase también


Fuentes