dams Thu Apr 12 02:34:58 2001 EDT Added files: /phpdoc/fr/functions dbx.xml Log: Translated.
Index: phpdoc/fr/functions/dbx.xml +++ phpdoc/fr/functions/dbx.xml <reference id="ref.dbx"> <title>dbx</title> <titleabbrev>dbx</titleabbrev> <partintro> <simpara> Le module dbx est un module d'abstraction de base de données (db pour database (base de données) et 'X' pour toutes les bases supportées). Les fonctions dbx vous permettent d'accéder à toutes les bases supportées, avec la même convention. Pour cela il vous faut avoir ces fonctions compilées avec PHP (option de configuration <option role="configure">--enable-dbx</option> et toutes les bases que vous souhaitez utiliser. Par exemple, si vous voulez accéder à MySQL depuis dbx, vous devez aussi configurer PHP avec <link linkend="install.configure.with-mysql"><option role="configure">--with-mysql</option></link>. Les fonctions dbx n'interface pas directement les bases de données, mais utilise les modules de support de ces bases. Pour pouvoir utiliser une base avec le module dbx, il vous faut l'avoir configuré avec PHP, ou bien la charger dynamiquement. Actuellement les bases MySQL, PostgreSQL et ODBC sont supportées, mais d'autres suivront bientôt (j'espère). </simpara> <simpara> La documentation complémentaire (ajout de nouvelles bases à dbx) est accessible à <ulink url="&url.dbx.docs;">&url.dbx.docs;</ulink>. </simpara> </partintro> <refentry id="function.dbx-close"> <refnamediv> <refname>dbx_close</refname> <refpurpose>Ferme une connexion à une base</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>boolean <function>dbx_close</function></funcdef> <paramdef>resource <parameter>link_identifier</parameter></paramdef> </funcprototype> </funcsynopsis> <para> <function>dbx_close</function> retourne <literal>TRUE</literal> en cas de succès, et <literal>FALSE</literal> en cas d'erreur. </para> <example> <title>Exemple avec <function>dbx_close</function></title> <programlisting role="php"> <?php $link = dbx_connect("mysql", "localhost", "base", "utilisateur", "mot de passe") or die ("Impossible de se connecter"); print("Connexion réussie"); dbx_close($link); ?> </programlisting> </example> <note> <para> Reportez vous aussi à documentation de la base de données que vous utilisez. </para> </note> <para> Voir aussi <function>dbx_connect</function>. </para> </refsect1> </refentry> <refentry id="function.dbx-connect"> <refnamediv> <refname>dbx_connect</refname> <refpurpose>Ouvre une connexion à une base de données</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>resource <function>dbx_connect</function></funcdef> <paramdef>string <parameter>module</parameter></paramdef> <paramdef>string <parameter>host</parameter></paramdef> <paramdef>string <parameter>database</parameter></paramdef> <paramdef>string <parameter>username</parameter></paramdef> <paramdef>string <parameter>password</parameter></paramdef> <paramdef>int <parameter><optional>persistent</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> <function>dbx_connect</function> retourne une resource dbx_link_object en cas de succès, <literal>FALSE</literal> sinon. Si la connexion a put être établie, mais que la base de données n'a pas pu être selectionnée, la fonction retournera quand même une ressource. Le paramètre <parameter>persistent</parameter> peut prendre la valeur DBX_PERSISTENT, pour créer une connexion persitante. </para> <para> Les valeurs possibles de <parameter>module</parameter> sont les suivantes (n'oubliez pas que cela fonctionnera que si le module associé est chargé): </para> <para> <itemizedlist> <listitem> <simpara> module 1: "mysql" </simpara> </listitem> <listitem> <simpara> module 2: "odbc" </simpara> </listitem> <listitem> <simpara> module 3: "pgsql" </simpara> </listitem> </itemizedlist> </para> <para> Le support de pgsql est au stade expérimental, et vous devez compiler vous-même le module pgsql après avoir modifié un des fichiers sources. Sinon, vous aurez une alerte affichée à chaque requête. </para> <para> La ressource dbx_link_object a trois membres : 'handle', 'module' et 'database'. Le membre 'database' contient le nom de la base de données actuellement selectionnée. Le membre 'module' est à usage interne à dbx, et contient le numéro de module sus-cité. Le membre 'handle' est une resource valide de connexion à la base de données, et peut être utilisé en tant que tel dans les autres fonctions spécifiques à cette base de données. </para> <para> <informalexample> <programlisting role="php"> <?php $link = dbx_connect("mysql", "localhost", "base de données", "utilisateur", "mot de passe"); mysql_close($link->handle); // dbx_close($link) est beaucoup plus adapté ici ?> </programlisting> </informalexample> </para> <para> Les paramètres <parameter>host</parameter>, <parameter>database</parameter>, <parameter>username</parameter> et <parameter>password</parameter> sont attendus, mais ne sont pas toujours utiles, suivant la fonction de connexion de la base de données utilisée. </para> <para> <example> <title>Exemple avec <function>dbx_connect</function></title> <programlisting role="php"> <?php $link = dbx_connect("odbc", "", "base de données", "utilisateur", "mot de passe", DBX_PERSISTENT) or die ("Impossible de se connecter"); print ("Connexion réussie"); dbx_close($link); ?> </programlisting> </example> <note> <para> Reportez vous aussi à documentation de la base de données que vous utilisez. </para> </note> </para> <para> Voir aussi <function>dbx_close</function>. </para> </refsect1> </refentry> <refentry id="function.dbx-error"> <refnamediv> <refname>dbx_error</refname> <refpurpose> Rapporte le message d'erreur du dernier appel de fonction </refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>string <function>dbx_error</function></funcdef> <paramdef>resource <parameter>link_identifier</parameter> </paramdef> </funcprototype> </funcsynopsis> <para> <function>dbx_error</function> retourne une chaîne contenant le message d'erreur du module sélectionné. S'il y a des connexions multiples sur le même module, seule la dernière erreur est fournie. S'il a des des connexions sur différents modules, la dernière erreur du module est retourné (le module est alors représenté par <parameter>link_identifier</parameter>). Notez que le module ODBC ne supporte pas encore cette fonction. </para> <example> <title>Exemple avec <function>dbx_error</function></title> <programlisting role="php"> <?php $link = dbx_connect("mysql", "localhost", "base de données", "utilisateur", "mot de passe") or die ("Impossible de se connecter"); $result = dbx_query($link, "select id from nonexistingtbl"); if ($result==0) { echo dbx_error($link); } dbx_close($link); ?> </programlisting> </example> <note> <para> Reportez vous aussi à documentation de la base de données que vous utilisez. </para> </note> </refsect1> </refentry> <refentry id="function.dbx-query"> <refnamediv> <refname>dbx_query</refname> <refpurpose>Envoie une requête et lit tous les résultats</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>resource <function>dbx_query</function></funcdef> <paramdef>resource <parameter>link_identifier</parameter></paramdef> <paramdef>string <parameter>sql_statement</parameter></paramdef> <paramdef>long <parameter><optional>flags</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> <function>dbx_query</function> retourne une resource dbx_result_object ou 1 en cas de succès (un objet de résultat ne sera retourné que pour les requêtes SQL qui retournent un résultat), ou 0 en cas d'erreur. Le paramètre <parameter>flags</parameter> sert à contrôler la quantité d'informations retournée. Il peut être n'importe quelle combinaisons par OR des constantes : DBX_RESULT_INFO, DBX_RESULT_INDEX, DBX_RESULT_ASSOC. DBX_RESULT_INFO fournit des informations sur les colonnes, comme les noms des champs et leur type. DBX_RESULT_INDEX retourne le résultat dans un tableau indexé (par exemple, data[2][3], où 2 est le numéro de ligne et 3 est le numéro de colonne), dont la première colonne est indexée à 0. DBX_RESULT_ASSOC associe les noms de colonnes avec leurs indices. Notez que DBX_RESULT_INDEX est toujours retourné, indépendamment de la valeur de <parameter>flags</parameter>. Si DBX_RESULT_ASSOC est spécifié, DBX_RESULT_INFO est aussi retourné, même s'il n'a pas été spécifié. Ce qui signifie que les seules combinaisons envisageables sont DBX_RESULT_INDEX, DBX_RESULT_INDEX | DBX_RESULT_INFO et DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC. La dernière combinaison est la valeur par défaut de <parameter>flags</parameter>. Les résultats associés sont en fait des références, ce qui fait que modifier <literal>data[0][0]</literal>, revient à modifier <literal>data[0]['fieldnameforfirstcolumn']</literal>. </para> <para> Un objet dbx_result_object a 5 membres (éventuellement 4, suivants les valeurs de <parameter>flags</parameter>) : 'handle', 'cols', 'rows', 'info' (optionnel) et 'data'. Handle est un identifiant de résultat, qui peut être utilisé avec les fonctions spécifiques à son module. Par exemple : </para> <para> <informalexample role="php"> <programlisting> <?php $result = dbx_query($link, "SELECT id FROM tbl"); mysql_field_len($result->handle, 0); ?> </programlisting> </informalexample> </para> <para> Les membres cols et rows contiennent les numéros de colonne et de champs. </para> <para> <informalexample> <programlisting role="php"> <?php $result = dbx_query($link, "SELECT id FROM tbl"); echo "Taille du résultat: " . $result->rows . " x " . $result->cols . "<br>\n"; ?> </programlisting> </informalexample> </para> <para> Le membre info n'est retourné que si DBX_RESULT_INFO et/ou DBX_RESULT_ASSOC sont spécifié dans le paramètre <parameter>flags</parameter>. C'est un deuxième tableau, qui possède deux lignes ("name" and "type"), pour connaître les informations sur les colonnes. </para> <para> <informalexample> <programlisting role="php"> <?php $result = dbx_query($link, "SELECT id FROM tbl"); echo "Nom de la colonne : " . $result->info["name"][0] . "<br>\n"; echo "Type de la colonne: " . $result->info["type"][0] . "<br>\n"; ?> </programlisting> </informalexample> </para> <para> Le membre data contient les données effectivement lues, éventuellement associées à des noms de colonnes. Si DBX_RESULT_ASSOC est utilisé, il est possible d'utiliser <literal>$result->data[2]["fieldname"]</literal>. </para> <example> <title>Exemple avec <function>dbx_query</function></title> <programlisting role="php"> <?php $link = dbx_connect("odbc", "", "base de données", "utilisateur", "mot de passe") or die ("Impossible de se connecter"); $result = dbx_query($link, "SELECT id, parentid, description FROM tbl"); if ($result==0) echo "La requête a échoué\n<br>"; elseif ($result==1) { echo "La requête a réussie\n<br>"; } else { $rows=$result->rows; $cols=$result->cols; echo "<p>table dimension: {$result->rows} x {$result->cols}<br><table border=1>\n"; echo "<tr>"; for ($col=0; $col<$cols; ++$col) { echo "<td>-{$result->info["name"][$col]}-<br>-{$result->info["type"][$col]}-</td>"; } echo "</tr>\n"; for ($row=0; $row<$rows; ++$row){ echo "<tr>"; for ($col=0; $col<$cols; ++$col) { echo "<td>-{$result->data[$row][$col]}-</td>"; } echo "</tr>\n"; } echo "</table><p>\n"; echo "table dimension: {$result->rows} x id, parentid, description<br><table border=1>\n"; for ($row=0; $row<$rows; ++$row) { echo "<tr>"; echo "<td>-{$result->data[$row]["id"]}-</td>"; echo "<td>-{$result->data[$row]["parentid"]}-</td>"; echo "<td>-{$result->data[$row]["description"]}-</td>"; echo "</tr>\n"; } echo "</table><p>\n"; } dbx_close($link); ?> </programlisting> </example> <note> <para> Reportez vous aussi à documentation de la base de données que vous utilisez. </para> </note> <para> Voir aussi <function>dbx_connect</function>. </para> </refsect1> </refentry> <refentry id="function.dbx-sort"> <refnamediv> <refname>dbx_sort</refname> <refpurpose> Tri un résultat avec une fonction utilisateur </refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>boolean <function>dbx_sort</function></funcdef> <paramdef>dbx_result_object <parameter>result</parameter></paramdef> <paramdef>string <parameter>user_compare_function</parameter> </paramdef> </funcprototype> </funcsynopsis> <para> <function>dbx_sort</function> retourne <literal>TRUE</literal> en cas de succès, et <literal>FALSE</literal> sinon. </para> <example> <title>Exemple avec <function>dbx_sort</function></title> <programlisting role="php"> <?php function user_re_order ($a, $b) { $rv = dbx_cmp_asc($a, $b, "parentid"); if (!$rv) $rv = dbx_cmp_asc($a, $b, "id"); return $rv; } $link = dbx_connect("odbc", "", "base de données", "utilisateur", "mot de passe") or die ("Impossible de se connecter"); $result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id"); echo "Les données sont maintenant triées par id<br>"; dbx_query($result, "user_re_order"); echo "Les données sont maintenant triées par parentid, puis par id<br>"; dbx_close($link); ?> </programlisting> </example> <para> Voir aussi <function>dbx_cmp_asc</function> et <function>dbx_cmp_desc</function>. </para> </refsect1> </refentry> <refentry id="function.dbx-cmp-asc"> <refnamediv> <refname>dbx_cmp_asc</refname> <refpurpose>Compare deux lignes pour tri croissant</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>int <function>dbx_cmp_asc</function></funcdef> <paramdef>array <parameter>row_a</parameter></paramdef> <paramdef>array <parameter>row_b</parameter></paramdef> <paramdef>string <parameter>columnname_or_index</parameter></paramdef> </funcprototype> </funcsynopsis> <para> <function>dbx_cmp_asc</function> retourne 0 si row_a[$columnname_or_index] est égal à row_b[$columnname_or_index], 1 si elle est plus grande et -1 si elle est plus petite. </para> <example> <title>Exemple avec <function>dbx_cmp_asc</function></title> <programlisting role="php"> <?php function user_re_order($a, $b) { $rv = dbx_cmp_asc($a, $b, "parentid"); if (!$rv) { $rv = dbx_cmp_asc($a, $b, "id"); return $rv; } } $link = dbx_connect("odbc", "", "base de données", "utilisateur", "mot de passe") or die ("Impossible de se connecter"); $result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id"); echo "Les données sont maintenant triées par id<br>"; dbx_query($result, "user_re_order"); echo "Les données sont maintenant triées par parentid, puis par id<br>"; dbx_close($link); ?> </programlisting> </example> <para> Voir aussi <function>dbx_sort</function> et <function>dbx_cmp_desc</function>. </para> </refsect1> </refentry> <refentry id="function.dbx-cmp-desc"> <refnamediv> <refname>dbx_cmp_desc</refname> <refpurpose>Compare deux lignes pour tri décroissant</refpurpose> </refnamediv> <refsect1> <title>Description</title> <funcsynopsis> <funcprototype> <funcdef>int <function>dbx_cmp_desc</function></funcdef> <paramdef>array <parameter>row_a</parameter></paramdef> <paramdef>array <parameter>row_b</parameter></paramdef> <paramdef>string <parameter>columnname_or_index</parameter> </paramdef> </funcprototype> </funcsynopsis> <para> <function>dbx_cmp_desc</function> retourne 0 si row_a[$columnname_or_index] est égal à row_b[$columnname_or_index], 1 si elle est plus grande et -1 si elle est plus petite. </para> <example> <title>Exemple avec <function>dbx_cmp_desc</function></title> <programlisting role="php"> <?php function user_re_order ($a, $b) { $rv = dbx_cmp_asc($a, $b, "parentid"); if (!$rv) { $rv = dbx_cmp_asc($a, $b, "id"); return $rv; } } $link = dbx_connect("odbc", "", "base de données", "utilisateur", "mot de passe") or die ("Impossible de se connecter"); $result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id"); echo "Les données sont maintenant triées par id<br>"; dbx_query($result, "user_re_order"); echo "Les données sont maintenant triées par parentid, puis par id<br>"; dbx_close($link); ?> </programlisting> </example> <para> Voir aussi <function>dbx_sort</function> et <function>dbx_cmp_asc</function>. </para> </refsect1> </refentry> </reference> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: -->