ADOdb

Page d’aide sur l’homonymie

Ne pas confondre avec ADODB (ActiveX Data Objects Database).

ADOdb
Informations
Dernière version 5.22.12 ()Voir et modifier les données sur Wikidata
Dépôt github.com/ADOdb/ADOdbVoir et modifier les données sur Wikidata
Écrit en PHP et PythonVoir et modifier les données sur Wikidata
Type Bibliothèque PHP (d)Voir et modifier les données sur Wikidata
Licence Licence BSDVoir et modifier les données sur Wikidata
Site web adodb.sourceforge.net et adodb.orgVoir et modifier les données sur Wikidata

ADOdb est une bibliothèque d'abstraction destinée à communiquer avec différents systèmes de gestion de base de données (SGBD). Écrite au début en PHP, il existe également une version en Python.

SGBD reconnus

La version PHP reconnaît un nombre important de SGBD, ceci grâce à la communauté ADOdb : MySQL, PostgreSQL, InterBase, Firebird, Informix, Oracle, Microsoft SQL Server, Foxpro, Access, ADO, Sybase, FrontBase, DB2, SAP DB, SQLite, Netezza, LDAP, et les génériques ODBC, ODBTP. Les drivers Sybase, Informix, FrontBase et PostgreSQL, Netezza, LDAP, ODBTP sont des contributions de la communauté.

De nombreuses applications Web, comme ACID, Zikula, Xaraya, phpWiki, Mambo, PHP GACL, TikiWiki, eGroupWare et phpLens App Server utilisent ADOdb pour leur couche d'abstraction de base de données.

Avantages

ADOdb possède plusieurs avantages.

Exemples de code en PHP

<?php
include('/path/to/adodb.inc.php');
$DB = NewADOConnection('mysql');
$DB->Connect($server, $user, $pwd, $db);

# M'soft style data retrieval with binds
$rs = $DB->Execute("select * from table where key=?",array($key));
while (!$rs->EOF) {
    print_r($rs->fields);
    $rs->MoveNext();
}

# PEAR style data retrieval
$rs = $DB->Execute("select * from table where key=123");
while ($array = $rs->FetchRow()) {
    print_r($array);
}

# Alternative URI connection syntax:
$DB = NewADOConnection("mysql://$user:$pwd@$server/$db?persist");

# No need for Connect or PConnect when using URI syntax

$ok = $DB->Execute("update atable set aval = 0");
if (!$ok) mylogerr($DB->ErrorMsg());

Autres possibilités :

# Updating tables
$ok = $DB->Execute("update table set col1=? where key=?",array($colval, $key));

# retrieving data shortcuts
$val = $DB->GetOne("select col from table where key='John'");
$row = $DB->GetRow("select col from table where key='John'");
$arr = $DB->GetAll("select col from table");
$arr = $DB->GetAssoc("select key,col from table"); # returns associative array $key=>col

# Retrieve high speed cached recordsets (cached for 3600 secs)
# Cache directory defined in  global $ADODB_CACHE_DIR. 
# CacheGetOne, CacheRow, CacheGetAll all work
$rs = $DB->CacheExecute(3600, "select orgname from users where user='JOHN'");

Prise en charge de PHP5

ADOdb gère pleinement PHP5, y compris sa bibliothèque standard (SPL) et la prise en charge des exceptions. Par exemple :

$rs = $DB->Execute("select * from table");
foreach ($rs as $row) {
    print_r($row);
}

Si vous incluez le fichier adodb-exceptions.inc.php, alors ADOdb jettera des exceptions quand une erreur surviendra :

include("/path/to/adodb-exceptions.inc.php");
include("/path/to/adodb.inc.php");
$DB = NewADOConnection('oci8');  
$DB->Connect("", "scott", "tiger");
try {
   $DB->Execute("select badsql from badtable");
} catch (exception $e) {
    print_r($e);
}

Notes et références

  1. ↑ « Release 5.22.12 », (consulté le )
  2. ↑ Liste complète des drivers
  3. ↑ En voici les benchmarks
  4. ↑ Voir les tips portable sql

Voir aussi

Liens externes

Sur les autres projets Wikimedia :