Accueil🇫🇷Chercher

ADOdb

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é[2].

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.

  • Il est rapide (ADOdb est l'une des couches d'abstraction libre les plus rapides sous PHP[3])
  • Il fournit des supports extensibles et portables pour les dates et la manipulation de type, ainsi que des schĂ©mas de crĂ©ation portables[4].
  • Il prend en charge beaucoup de fonctionnalitĂ©s d'entreprise, comme les backend sessions des bases de donnĂ©es (avec une notification d'expiration), gĂ©nĂ©ration de code SQL, tables pivots, Ă©mulation de SELECT LIMIT pour toutes les bases de donnĂ©es, monitoring de performances.
  • Chaque version publiĂ©e est systĂ©matiquement testĂ©e pour Microsoft Access, MySQL, PostgreSQL, MS SQL Server et Oracle 9. ADOdb possède en outre une importante communautĂ© d'utilisateurs, gage de rĂ©activitĂ© dans les tests.
  • Il est distribuĂ© sous licence BSD, licence permissive pour ses utilisateurs

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

Voir aussi

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.