Serveur HTTP Apache Version 2.4
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 |
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.
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.
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.
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*));