Files
doc-fr/reference/pgsql/functions/pg-fetch-object.xml
2024-02-23 18:13:55 +00:00

194 lines
5.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 39bb8a868935a56cfce438b0169e13c02c93211c Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.pg-fetch-object" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pg_fetch_object</refname>
<refpurpose>
Lit une ligne de résultat PostgreSQL dans un objet
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>object</type><type>false</type></type><methodname>pg_fetch_object</methodname>
<methodparam><type>PgSql\Result</type><parameter>result</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>row</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>class</parameter><initializer>"stdClass"</initializer></methodparam>
<methodparam choice="opt"><type>array</type><parameter>constructor_args</parameter><initializer>[]</initializer></methodparam>
</methodsynopsis>
<para>
<function>pg_fetch_object</function> retourne un objet ainsi que ses
propriétés qui correspond aux noms des champs de la ligne. La fonction
peut optionnellement instancier un objet d'une classe spécifique et passer
les paramètres au constructeur de cette classe.
</para>
&database.fetch-null;
<para>
Du point de vue vitesse, la fonction est identique à
<function>pg_fetch_array</function> et est presque aussi rapide que
<function>pg_fetch_row</function> (la différence est insignifiante).
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>result</parameter></term>
<listitem>
&pgsql.parameter.result;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>row</parameter></term>
<listitem>
<para>
Numéro de la ligne à récupérer. Les lignes sont numérotées
en commençant à 0. Si l'argument est omis ou s'il vaut &null;,
la ligne suivante est récupérée.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>class</parameter></term>
<listitem>
<para>
Le nom de la classe à instancier, fixe les propriétés de celles-ci et
ses valeurs de retour. Si rien n'est spécifié, un objet de style
<classname>stdClass</classname> est retourné.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>constructor_args</parameter></term>
<listitem>
<para>
Paramètre optionnel de type <type>array</type> pour passer des
arguments au constructeur de la classe
<parameter>class</parameter>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Un objet de type <type>object</type> avec les attributs pour chaque champ
dans le jeu de résultats.
Les valeurs &null; de la base de données sont retournées &null;.
</para>
<para>
&false; est retournée si <parameter>row</parameter> excède le nombre de
lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout
autre erreur.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Une <classname>ValueError</classname> est déclenchée lorsque
l'argument <parameter>constructor_args</parameter> n'est pas vide et que la classe n'a pas de constructeur.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
Lance désormais une exception <classname>ValueError</classname> lorsque
l'argument <parameter>constructor_args</parameter> n'est pas vide et que la classe n'a pas de constructeur ;
précédemment, une exception <classname>Exception</classname> était déclenchée.
</entry>
</row>
&pgsql.changelog.result-object;
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Exemple avec <function>pg_fetch_object</function></title>
<programlisting role="php">
<![CDATA[
<?php
$database = 'store';
$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
echo "La connexion a la base $database a échouée\n";
exit;
}
$qu = pg_query($db_conn, "SELECT * FROM livres ORDER BY auteur");
while ($data = pg_fetch_object($qu)) {
echo $data->auteur . " (";
echo $data->annee . "): ";
echo $data->titre . "<br />";
}
pg_free_result($qu);
pg_close($db_conn);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pg_query</function></member>
<member><function>pg_fetch_array</function></member>
<member><function>pg_fetch_assoc</function></member>
<member><function>pg_fetch_row</function></member>
<member><function>pg_fetch_result</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->