Diferencia entre revisiones de «ADOdb»
| Línea 1: | Línea 1: | ||
| − | |||
{{Ficha Software | {{Ficha Software | ||
| − | |nombre= | + | |nombre= ADOdb |
| − | |familia= | + | |familia= Base de Datos |
| − | |imagen= | + | |imagen= adodb_logo.jpg |
| − | |tamaño= | + | |tamaño=34,5 KB |
| − | |descripción= | + | |descripción= Paquete de librerías para PHP y Python |
| − | |imagen2= | + | |imagen2= adodb.jpg |
| − | |tamaño2= | + | |tamaño2= 3,1 KB |
|descripción2= | |descripción2= | ||
|creador= | |creador= | ||
| Línea 17: | Línea 16: | ||
|última versión estable= | |última versión estable= | ||
|género= | |género= | ||
| − | |sistemas operativos= | + | |sistemas operativos= |
|idioma= | |idioma= | ||
|licencia= | |licencia= | ||
|premios= | |premios= | ||
|web= | |web= | ||
| − | }}'''ADOdb''' Es un paquete de librerías para [[PHP|PHP]] y [[Python|Python]] de [[Bases de datos|bases de datos]] que permite a los programadores crear [[Aplicaciones Web|aplicaciones]] Web de manera que puedan ser extraídos y/o introducidos datos desde o hacia una base de datos.<br>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.<br>Está liberada bajo la [[Licencias de Software|licencia]] [[BSD|BSD]]-[[LGPL|LGPL]] aunque los creadores afirman que en caso de conflicto predominaría la licencia BSD.<br>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|MySQL]] que sin dudas es a la que mayores aportes se le han agregado, [[Oracle|Oracle]], [[Microsoft SQL Server|Microsoft SQL Server]], Sybase, Sybase SQL Anywhere, Informix, [[PostgreSQL|PostgreSQL]], FrontBase, [[SQLite|SQLite]], Interbase (con versiones de [[Firebird|Firebird]] y Borland), [[Visual Foxpro|Foxpro]], [[Microsoft Access|Access]], ADO, DB2, SAP DB y [[ODBC|ODBC]]. Vale aclarar que si existe mucha compatibilidad de parte de ADOdb, es debido a los aportes de la comunidad de [[Software libre|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''' Es un paquete de librerías para [[PHP|PHP]] y [[Python|Python]] de [[Bases de datos|bases de datos]] que permite a los programadores crear [[Aplicaciones Web|aplicaciones]] Web de manera que puedan ser extraídos y/o introducidos datos desde o hacia una base de datos.<br>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.<br>Está liberada bajo la [[Licencias de Software|licencia]] [[BSD|BSD]]-[[LGPL|LGPL]] aunque los creadores afirman que en caso de conflicto predominaría la licencia BSD.<br>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|MySQL]] que sin dudas es a la que mayores aportes se le han agregado, [[Oracle|Oracle]], [[Microsoft SQL Server|Microsoft SQL Server]], Sybase, Sybase SQL Anywhere, Informix, [[PostgreSQL|PostgreSQL]], FrontBase, [[SQLite|SQLite]], Interbase (con versiones de [[Firebird|Firebird]] y Borland), [[Visual Foxpro|Foxpro]], [[Microsoft Access|Access]], ADO, DB2, SAP DB y [[ODBC|ODBC]]. Vale aclarar que si existe mucha compatibilidad de parte de ADOdb, es debido a los aportes de la comunidad de [[Software libre|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 == | == 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. | |
| − | |||
{| width="100%" cellspacing="1" cellpadding="1" border="1" | {| width="100%" cellspacing="1" cellpadding="1" border="1" | ||
| Línea 267: | Línea 266: | ||
Los valores de S/N, S O N indican la posibilidad de utilizar el contador de registros de la base de datos. | 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 | + | == Uso de ADOdb para algunas bases de datos == |
=== MySQL === | === MySQL === | ||
| Línea 293: | Línea 292: | ||
$conn = ADONewConnection($dsn);</source> | $conn = ADONewConnection($dsn);</source> | ||
| − | === PDO | + | === PDO === |
| − | PDO solo funciona con php5 y permite cadenas de conexión de drivers específio | + | PDO solo funciona con php5 y permite cadenas de conexión de drivers específio |
<source lang="php">$conn =& NewADOConnection('pdo'); | <source lang="php">$conn =& NewADOConnection('pdo'); | ||
| Línea 306: | Línea 305: | ||
<source lang="php">$conn =& NewADOConnection("pdo_mysql://user:pwd@localhost/mydb?persist");</source> | <source lang="php">$conn =& NewADOConnection("pdo_mysql://user:pwd@localhost/mydb?persist");</source> | ||
| − | === | + | === PostgreSQL === |
PostgreSQL 7 y 8 permiten el estilo estandard de llamado a conexión, | PostgreSQL 7 y 8 permiten el estilo estandard de llamado a conexión, | ||
| Línea 313: | Línea 312: | ||
$conn->PConnect('host=localhost port=5432 dbname=mary');</source> | $conn->PConnect('host=localhost port=5432 dbname=mary');</source> | ||
| − | El clásico de cuatro parámetros, | + | El clásico de cuatro parámetros, |
<source lang="php">$conn->PConnect('localhost','userid','password','database');</source><br> | <source lang="php">$conn->PConnect('localhost','userid','password','database');</source><br> | ||
| Línea 364: | Línea 363: | ||
*Insert_ID <br> | *Insert_ID <br> | ||
| − | |||
== Véase también == | == Véase también == | ||
| Línea 371: | Línea 369: | ||
*[[Microsoft_SQL_Server|MS SQL Server ]] | *[[Microsoft_SQL_Server|MS SQL Server ]] | ||
| − | |||
| − | == Fuentes | + | == Fuentes == |
*http://www.phplens.com/adodb/code.initialization.html<br> | *http://www.phplens.com/adodb/code.initialization.html<br> | ||
| Línea 381: | Línea 378: | ||
*http://www.lacorona.com.mx/fortiz/adodb/docs-adodb-es.htm<br> | *http://www.lacorona.com.mx/fortiz/adodb/docs-adodb-es.htm<br> | ||
| − | |||
| − | |||
| − | |||
| − | |||
[[Category:Herramientas_de_programación]] | [[Category:Herramientas_de_programación]] | ||
Revisión del 15:04 6 may 2011
| ||||||||
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.
Sumario
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