<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_dbd

Langues Disponibles:  en  |  fr 

Description:Gestion des connexions à une base de données SQL
Statut:Extension
Identificateur de Module:dbd_module
Fichier Source:mod_dbd.c
Compatibilité:Versions 2.1 and supérieures

Sommaire

Le module mod_dbd gère les connexions à une base de données SQL via APR. Il permet aux modules qui requièrent des fonctions liées aux bases de données SQL de se connecter à une base de données à la demande, et s'efforce de conférer aux bases de données une efficacité et une évolutivité optimales pour les MPMs threadés ou non threadés. Pour plus de détails, voir le site web APR, ainsi que cette vue d'ensemble de l'environnement de développement d'Apache DBD par son développeur initial.

Support Apache!

Sujets

Directives

Traitement des bugs

Voir aussi

top

Regroupement des connexions

Ce module gère de manière optimisée en fonction de la plate-forme les connexions aux bases de données. Sur les plates-formes non threadées, il maintient une connexion persistente à la manière d'un LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les plates-formes threadées, il maintient un groupe de connexions à la fois plus évolutif et plus efficace, comme décrit dans cet article d'ApacheTutor. Notez que mod_dbd remplace les modules présentés dans cet article.

top

Connexion

Pour vous connecter à votre base de données, vous devez spécifier un pilote et des paramètres de connexion qui diffèrent selon le moteur de base de données. Par exemple, pour vous connecter à mysql, spécifiez ce qui suit :

DBDriver mysql
DBDParams host=localhost,dbname=pony,user=shetland,pass=appaloosa

Vous pourrez alors utiliser cette connexion dans de nombreux autres modules comme mod_rewrite, mod_authn_dbd et mod_lua. Vous trouverez des exemples d'utilisation dans la documentation de ces modules.

Voir la syntaxe de la directive DBDParams pour les informations à fournir dans la chaîne de connexion en fonction des différents pilotes de base de données supportés.

top

API DBD d'Apache

mod_dbd exporte cinq fonctions que d'autres modules pourront utiliser. L'API se présente comme suit :

typedef struct {
    apr_dbd_t *handle;
    apr_dbd_driver_t *driver;
    apr_hash_t *prepared;
} ap_dbd_t;

/* Fonctions exportées pour accéder à la base de données */

/* ouvre une connexion qui DOIT avoir été explicitement fermée.
 * Renvoie NULL en cas d'erreur
 */
AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);

/* ferme une connexion ouverte avec ap_dbd_open */
AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*);

/* acquiert une connexion qui aura la durée de vie de la requête et qui
 * NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas
 * d'erreur. C'est la fonction recommandée pour la plupart des
 * applications.
 */
AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*);

/* acquiert une connexion qui aura la durée de vie d'une connexion et
 * qui NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas
 * d'erreur.
 */
AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*);

/* Prépare une requête qu'un module client pourra utiliser */
AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*);

/* Exporte aussi ces fonctions à titre optionnel mour les modules qui
 * péfèreraient les utiliser */
APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));
APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));
APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));