]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_dbd.html.fr
Update xforms!
[apache] / docs / manual / mod / mod_dbd.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>mod_dbd - Serveur Apache HTTP Version 2.5</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
18 <body>
19 <div id="page-header">
20 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
21 <p class="apache">Serveur Apache HTTP Version 2.5</p>
22 <img alt="" src="../images/feather.gif" /></div>
23 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
24 <div id="path">
25 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">Modules</a></div>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_dbd</h1>
28 <div class="toplang">
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
30 <a href="../fr/mod/mod_dbd.html" title="Français">&nbsp;fr&nbsp;</a></p>
31 </div>
32 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Gestion des connexions à une base de données SQL</td></tr>
33 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
34 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>dbd_module</td></tr>
35 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_dbd.c</td></tr></table>
36 <h3>Sommaire</h3>
37
38     <p>Le module <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> gère les connexions
39     à une base de données SQL via <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>. Il permet
40     aux modules qui requièrent des fonctions liées aux bases de données
41     SQL de se connecter à une base de données à la demande, et s'efforce
42     de conférer aux bases de données une efficacité et une
43     évolutivité optimales pour les MPMs threadés ou non threadés. Pour
44     plus de détails, voir le site web <a href="http://apr.apache.org/">APR</a>,
45     ainsi que cette vue d'ensemble de l'<a href="http://people.apache.org/~niq/dbd.html">environnement de
46     développement d'Apache DBD</a> par son développeur initial.
47 </p>
48 </div>
49 <div id="quickview"><h3>Sujets</h3>
50 <ul id="topics">
51 <li><img alt="" src="../images/down.gif" /> <a href="#pooling">Regroupement des connexions</a></li>
52 <li><img alt="" src="../images/down.gif" /> <a href="#API">API DBD d'Apache</a></li>
53 <li><img alt="" src="../images/down.gif" /> <a href="#prepared">Requêtes SQL préparées</a></li>
54 <li><img alt="" src="../images/down.gif" /> <a href="#security">AVERTISSEMENT DE SECURITE</a></li>
55 </ul><h3 class="directives">Directives</h3>
56 <ul id="toc">
57 <li><img alt="" src="../images/down.gif" /> <a href="#dbdexptime">DBDExptime</a></li>
58 <li><img alt="" src="../images/down.gif" /> <a href="#dbdinitsql">DBDInitSQL</a></li>
59 <li><img alt="" src="../images/down.gif" /> <a href="#dbdkeep">DBDKeep</a></li>
60 <li><img alt="" src="../images/down.gif" /> <a href="#dbdmax">DBDMax</a></li>
61 <li><img alt="" src="../images/down.gif" /> <a href="#dbdmin">DBDMin</a></li>
62 <li><img alt="" src="../images/down.gif" /> <a href="#dbdparams">DBDParams</a></li>
63 <li><img alt="" src="../images/down.gif" /> <a href="#dbdpersist">DBDPersist</a></li>
64 <li><img alt="" src="../images/down.gif" /> <a href="#dbdpreparesql">DBDPrepareSQL</a></li>
65 <li><img alt="" src="../images/down.gif" /> <a href="#dbdriver">DBDriver</a></li>
66 </ul>
67 <h3>Voir aussi</h3>
68 <ul class="seealso">
69 <li><a href="../misc/password_encryptions.html">Formats des mots de
70 passe</a></li>
71 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
72 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
73 <div class="section">
74 <h2><a name="pooling" id="pooling">Regroupement des connexions</a></h2>
75     <p>Ce module gère de manière optimisée en fonction de la plate-forme
76     les connexions aux bases de données. Sur les plates-formes non
77     threadées, il maintient une connexion persistente à la manière d'un
78     LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les
79     plates-formes threadées, il maintient un <em>groupe de
80     connexions</em> à la fois plus évolutif et plus efficace, comme
81     décrit dans <a href="http://www.apachetutor.org/dev/reslist">cet
82     article d'ApacheTutor</a>. Notez que <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>
83     remplace les modules présentés dans cet article.</p>
84 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
85 <div class="section">
86 <h2><a name="API" id="API">API DBD d'Apache</a></h2>
87     <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> exporte cinq fonctions que d'autres
88     modules pourront utiliser. L'API se présente comme suit :</p>
89
90     <pre class="prettyprint lang-c">typedef struct {
91     apr_dbd_t *handle;
92     apr_dbd_driver_t *driver;
93     apr_hash_t *prepared;
94 } ap_dbd_t;
95
96 /* Fonctions exportées pour accéder à la base de données */
97
98 /* ouvre une connexion qui DEVRA être explicitement fermée.
99  * Renvoie NULL en cas d'erreur
100  */
101 AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);
102
103 /* ferme une connexion ouverte avec ap_dbd_open */
104 AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*);
105
106 /* acquiert une connexion qui aura la durée de vie de la requête et qui
107  * NE DEVRA PAS être explicitement fermée. Renvoie NULL en cas
108  * d'erreur. C'est la fonction recommandée pour la plupart des
109  * applications.
110  */
111 AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*);
112
113 /* acquiert une connexion qui aura la durée de vie d'une connexion et
114  * qui NE DEVRA PAS être explicitement fermée. Renvoie NULL en cas
115  * d'erreur.
116  */
117 AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*);
118
119 /* Prépare une requête qu'un module client pourra utiliser */
120 AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*);
121
122 /* Exporte aussi ces fonctions à titre optionnel mour les modules qui
123  * péfèreraient les utiliser */
124 APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));
125 APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));
126 APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
127 APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
128 APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));</pre>
129
130 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
131 <div class="section">
132 <h2><a name="prepared" id="prepared">Requêtes SQL préparées</a></h2>
133     <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supporte les requêtes SQL préparées pour
134     le compte des modules qui pourraient les utiliser. Chaque requête
135     préparée doit posséder un nom (étiquette), et est stockée dans un
136     condensé (hash) : les condensés sont du type
137     <code>apr_dbd_prepared_t</code> et s'utilisent dans toute requête
138     SQL ou commande select préparée par apr_dbd.</p>
139
140     <p>Il est du ressort des modules utilisateurs de dbd d'utiliser les
141     requêtes préparées et de préciser quelles requêtes doivent être
142     spécifiées dans httpd.conf, ou de fournir leurs propres directives
143     et d'utiliser <code>ap_dbd_prepare</code>.</p>
144
145     <div class="warning"><h3>Avertissement</h3>
146         Lorsqu'on utilise des requêtes préparées avec des bases de
147         données MySQL, il est préférable de définir
148         <code>reconnect</code> à 0 dans la chaîne de connexion, afin
149         d'éviter des erreurs provoquées par un client MySQL qui se
150         reconnecterait sans réinitialiser correctement les requêtes
151         préparées. Si <code>reconnect</code> est défini à 1, toute
152         connexion défectueuse sera sensée être réparée, mais comme
153         mod_dbd n'en est pas informé, les requêtes préparées seront
154         invalidées.
155         </div>
156 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
157 <div class="section">
158 <h2><a name="security" id="security">AVERTISSEMENT DE SECURITE</a></h2>
159
160     <p>Toute application web impliquant une base de données doit se
161     protéger elle-même contre les attaques de type injection SQL. Dans
162     la plupart des cas Apache DBD est sûr, car les applications
163     utilisent des requêtes préparées, et les entrées non sûres ne seront
164     utilisées qu'à titre de données. Bien entendu, si vous l'utilisez
165     via un module tiers, vous devez être au fait des précautions à
166     prendre.</p>
167     <p>Cependant, le pilote <var>FreeTDS</var> est <strong>non
168     sûr</strong> de par sa nature même. Comme la bibliothèque
169     sous-jacente ne supporte pas les requêtes préparées, le pilote en
170     effectue une émulation, et les entrées non sûres sont fusionnées
171     avec la requête SQL.</p>
172     <p>Il peut être sécurisé en <em>décontaminant</em> toutes les
173     entrées : un processus inspiré de la recherche de contaminations de
174     Perl (NdT : <code>taint checking</code>). Chaque entrée est comparée
175     à une expression rationnelle, et
176     seules les entrées qui correspondent sont utilisées, en accord avec
177     le raccourci Perl :</p>
178     <div class="example"><pre><code>  $untrusted =~ /([a-z]+)/;
179   $trusted = $1;</code></pre></div>
180     <p>Pour utiliser ceci, les expressions rationnelles de
181     décontamination doivent être incluses dans les requêtes préparées.
182     L'expression rationnelle doit se situer immédiatement après le
183     caractère % dans la requête préparée, et doit être entourée
184     d'accolades {}. Par exemple, si votre application attend une entrée
185     alphanumérique, vous pouvez utiliser :</p>
186     <div class="example"><p><code>
187        <code>"SELECT foo FROM bar WHERE input = %s"</code>
188     </code></p></div>
189     <p>avec d'autres pilotes, et ne risquer au pire qu'une requête
190     en échec. Mais avec FreeTDS, vous devez utiliser :</p>
191     <div class="example"><p><code>
192        <code>"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"</code>
193     </code></p></div>
194     <p>tout ce qui ne correspond pas à l'expression rationnelle est
195     alors rejeté, et la requête est ainsi désormais sûre.</p>
196     <p>Alternativement, vous pouvez utiliser le pilote ODBC tiers, qui
197     offre la sécurité des requêtes préparées authentiques.</p>
198 </div>
199 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
200 <div class="directive-section"><h2><a name="dbdexptime" id="dbdexptime">Directive</a> <a name="DBDExptime" id="DBDExptime">DBDExptime</a></h2>
201 <table class="directive">
202 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie des connexions inactives</td></tr>
203 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDExptime <var>durée en secondes</var></code></td></tr>
204 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DBDExptime 300</code></td></tr>
205 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
206 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
207 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
208 </table>
209     <p>Cette directive définit la durée de vie des connexions
210     inactives lorsque le nombre de connexions spécifié par la directive
211     DBDKeep a été dépassé (plates-formes threadées seulement).</p>
212
213 </div>
214 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
215 <div class="directive-section"><h2><a name="dbdinitsql" id="dbdinitsql">Directive</a> <a name="DBDInitSQL" id="DBDInitSQL">DBDInitSQL</a></h2>
216 <table class="directive">
217 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Exécute une instruction SQL après connexion à une base de
218 données</td></tr>
219 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDInitSQL <var>"instruction SQL"</var></code></td></tr>
220 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
221 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
222 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
223 </table>
224     <p>Les modules qui le souhaitent peuvent exécuter une ou plusieurs
225     instructions SQL après connexion à une base de données. Par exemple
226     initialiser certaines valeurs, ou ajouter une entrée dans le journal
227     lors d'une nouvelle connexion à la base de données.</p>
228
229 </div>
230 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
231 <div class="directive-section"><h2><a name="dbdkeep" id="dbdkeep">Directive</a> <a name="DBDKeep" id="DBDKeep">DBDKeep</a></h2>
232 <table class="directive">
233 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de connexions maintenues</td></tr>
234 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDKeep <var>nombre</var></code></td></tr>
235 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DBDKeep 2</code></td></tr>
236 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
237 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
238 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
239 </table>
240     <p>Cette directive définit le nombre maximum de connexions
241     à maintenir par processus, en dehors de celles servant à gérer les
242     pics de demandes (plates-formes threadées seulement).</p>
243
244 </div>
245 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
246 <div class="directive-section"><h2><a name="dbdmax" id="dbdmax">Directive</a> <a name="DBDMax" id="DBDMax">DBDMax</a></h2>
247 <table class="directive">
248 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de connexions</td></tr>
249 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDMax <var>nombre</var></code></td></tr>
250 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DBDMax 10</code></td></tr>
251 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
252 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
253 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
254 </table>
255     <p>Cette directive définit le nombre maximum effectif de
256     connexions par processus (plates-formes threadées seulement).</p>
257
258 </div>
259 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
260 <div class="directive-section"><h2><a name="dbdmin" id="dbdmin">Directive</a> <a name="DBDMin" id="DBDMin">DBDMin</a></h2>
261 <table class="directive">
262 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre minimum de connexions</td></tr>
263 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDMin <var>nombre</var></code></td></tr>
264 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DBDMin 1</code></td></tr>
265 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
266 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
267 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
268 </table>
269     <p>Cette directive définit le nombre minimum de connexions
270     par processus (plates-formes threadées seulement).</p>
271
272 </div>
273 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
274 <div class="directive-section"><h2><a name="dbdparams" id="dbdparams">Directive</a> <a name="DBDParams" id="DBDParams">DBDParams</a></h2>
275 <table class="directive">
276 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Paramètres de la connexion à la base de
277 données</td></tr>
278 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDParams
279 <var>param1</var>=<var>valeur1</var>[,<var>param2</var>=<var>valeur2</var>]</code></td></tr>
280 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
281 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
282 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
283 </table>
284     <p>Cette directive spécifie des paramètres selon les
285     besoins du pilote concerné. En général, les paramètres à passer
286     concernent tout ce qui n'a pas de valeur par défaut comme le nom
287     d'utilisateur, le mot de passe, le nom de la base de données, le nom
288     d'hôte et le numéro de port de la connexion.</p>
289     <p>Les paramètres de la chaîne de connexion en fonction des
290     différents pilotes comprennent :</p>
291     <dl>
292     <dt>FreeTDS (pour MSSQL et SyBase)</dt>
293     <dd>username, password, appname, dbname, host, charset, lang, server</dd>
294     <dt>MySQL</dt>
295     <dd>host, port, user, pass, dbname, sock, flags, fldsz, group, reconnect</dd>
296     <dt>Oracle</dt>
297     <dd>user, pass, dbname, server</dd>
298     <dt>PostgreSQL</dt>
299     <dd>La chaîne de connexion est passée directement à <code>PQconnectdb</code></dd>
300     <dt>SQLite2</dt>
301     <dd>La chaîne de connexion est scindée avec comme séparateur le
302     caractère ':', et <code>partie1:partie2</code> est utilisé dans
303     <code>sqlite_open(partie1, atoi(partie2), NULL)</code></dd>
304     <dt>SQLite3</dt>
305     <dd>La chaîne de connexion est passée directement à <code>sqlite3_open</code></dd>
306     <dt>ODBC</dt>
307     <dd>datasource, user, password, connect, ctimeout, stimeout, access, txmode, bufsize</dd>
308     </dl>
309
310 </div>
311 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
312 <div class="directive-section"><h2><a name="dbdpersist" id="dbdpersist">Directive</a> <a name="DBDPersist" id="DBDPersist">DBDPersist</a></h2>
313 <table class="directive">
314 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utiliser ou non des connexions persistentes</td></tr>
315 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDPersist On|Off</code></td></tr>
316 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
317 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
318 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
319 </table>
320     <p>Si cette directive est définie à Off, les connexions persistentes
321     et les connexions groupées sont désactivées. À la demande d'un
322     client, une nouvelle connexion à la base de données est ouverte, et
323     fermée immédiatement à l'issue du traitement. Cette configuration ne
324     doit être utilisée qu'à des fins de débogage, ou sur des serveurs à
325     charge faible.</p>
326
327     <p>Par défaut, les groupes de connexions persistentes sont activés
328     (ou une seule connexion persistente du style LAMP pour les serveurs
329     non threadés), et c'est la configuration qui devrait être utilisée
330     dans la plupart des cas sur un serveur en production.</p>
331
332     <p>Avant la version 2.2.2, cette directive n'acceptait que les
333     valeurs <code>0</code> et <code>1</code> au lieu de <code>Off</code>
334     et <code>On</code>, respectivement.</p>
335
336 </div>
337 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
338 <div class="directive-section"><h2><a name="dbdpreparesql" id="dbdpreparesql">Directive</a> <a name="DBDPrepareSQL" id="DBDPrepareSQL">DBDPrepareSQL</a></h2>
339 <table class="directive">
340 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une requête SQL préparée</td></tr>
341 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDPrepareSQL <var>"requête SQL"</var> <var>étiquette</var></code></td></tr>
342 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
343 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
344 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
345 </table>
346     <p>Pour les modules tels que les modules d'authentification, qui
347     utilisent de manière répétée la même requête SQL, on peut optimiser
348     les performances en préparant la requête une fois pour toutes au
349     démarrage, plutôt qu'à chaque utilisation. Cette directive permet de
350     préparer une requête SQL et de lui assigner une étiquette.</p>
351
352 </div>
353 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
354 <div class="directive-section"><h2><a name="dbdriver" id="dbdriver">Directive</a> <a name="DBDriver" id="DBDriver">DBDriver</a></h2>
355 <table class="directive">
356 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie un pilote SQL</td></tr>
357 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DBDriver <var>nom</var></code></td></tr>
358 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
359 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
360 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dbd</td></tr>
361 </table>
362     <p>Cette directive spécifie un pilote apr_dbd par son
363     nom. Le pilote doit être installé sur votre système (sur la plupart
364     des systèmes, il s'agit d'un objet partagé ou d'une dll). Par
365     exemple, <code>DBDriver mysql</code> va sélectionner le pilote MySQL
366     dans la bibliothèque apr_dbd_mysql.so.</p>
367
368 </div>
369 </div>
370 <div class="bottomlang">
371 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
372 <a href="../fr/mod/mod_dbd.html" title="Français">&nbsp;fr&nbsp;</a></p>
373 </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
374 <script type="text/javascript"><!--//--><![CDATA[//><!--
375 var comments_shortname = 'httpd';
376 var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_dbd.html';
377 (function(w, d) {
378     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
379         d.write('<div id="comments_thread"><\/div>');
380         var s = d.createElement('script');
381         s.type = 'text/javascript';
382         s.async = true;
383         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
384         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
385     }
386     else {
387         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
388     }
389 })(window, document);
390 //--><!]]></script></div><div id="footer">
391 <p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
392 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
393 if (typeof(prettyPrint) !== 'undefined') {
394     prettyPrint();
395 }
396 //--><!]]></script>
397 </body></html>