Files
doc-fr/reference/ibm_db2/functions/db2-bind-param.xml
George Peter Banyard 02692948c2 Small updates to the French documentation.
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@346490 c90b9560-bf6c-de11-be94-00142212c4b1
2018-12-30 17:05:53 +00:00

315 lines
10 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 59d2ecdcbfb345bd297502389c4a1c55784b812b Maintainer: jsgoupil Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.db2-bind-param" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>db2_bind_param</refname>
<refpurpose>
Associe une variable PHP à un paramètre d'une requête SQL
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>db2_bind_param</methodname>
<methodparam><type>resource</type><parameter>stmt</parameter></methodparam>
<methodparam><type>int</type><parameter>parameter_number</parameter></methodparam>
<methodparam><type>string</type><parameter>variable_name</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>parameter_type</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>data_type</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>precision</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>scale</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Associe une variable PHP à un paramètre dans la requête SQL
retournée par <function>db2_prepare</function>. Cette fonction vous donne
plus de contrôle sur les types des paramètres, les types des données, la
précision, et l'échelle pour le paramètre qu'en lui passant simplement une
variable à l'intérieur du tableau d'entrée optionnel de la fonction
<function>db2_execute</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stmt</parameter></term>
<listitem>
<para>
Une requête préparée retournée par <function>db2_prepare</function>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>parameter_number</parameter></term>
<listitem>
<para>
Spécifie la position du paramètre commençant à l'indice 1 dans la
requête préparée.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>variable_name</parameter></term>
<listitem>
<para>
Une chaîne spécifiant le nom de la variable PHP à associer au
paramètre spécifié par <parameter>parameter_number</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>parameter_type</parameter></term>
<listitem>
<para>
Une constante spécifiant si la variable PHP devrait être associé au
paramètre SQL en tant que paramètre entrant
(<literal>DB2_PARAM_IN</literal>), que paramètre sortant
(<literal>DB2_PARAM_OUT</literal>) ou en tant que paramètre qui accepte
les entrées et les sorties (<literal>DB2_PARAM_INOUT</literal>).
Pour éviter une surconsommation de la mémoire, vous pouvez aussi spécifier
<literal>DB2_PARAM_FILE</literal> pour attacher la variable PHP au
nom du fichier qui contient les données de l'objet large (BLOB, CLOB ou
DBCLOB).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data_type</parameter></term>
<listitem>
<para>
Une constante spécifiant le type de données SQL que la variable PHP
devrait être associée. Le paramètre doit prendre une des valeurs
suivantes : <literal>DB2_BINARY</literal>,
<literal>DB2_CHAR</literal>, <literal>DB2_DOUBLE</literal> ou
<literal>DB2_LONG</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>precision</parameter></term>
<listitem>
<para>
Spécifie la précision à laquelle la variable devrait être associée à
la base de données. Ce paramètre peut également être utilisé pour
récupérer des valeurs de sortie XML pour les procédures stockées.
Une valeur non-négative spécifie la taille maximale des données XML
qui seront récupérées depuis la base de données. Si ce paramètre n'est
pas utilisé, une taille par défaut de 1 Mo sera définie pour récupérer
les valeurs de sorte XML depuis la procédure stockée.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>scale</parameter></term>
<listitem>
<para>
Spécifie l'échelle à laquelle la variable devrait être associée à la
base de données.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Association de variables PHP à une requête préparée</title>
<para>
La requête SQL dans l'exemple suivant utilise deux paramètres d'entrée
dans la section WHERE. Nous appelons <function>db2_bind_param</function>
pour associer deux variables qui n'ont pas été déclarées ou assignées
avant l'appel de <function>db2_bind_param</function>; dans cet exemple,
<literal>$lower_limit</literal> est assignée avant d'être appelée à
<function>db2_bind_param</function>, mais <literal>$upper_limit</literal>
est assignée après l'appel de <function>db2_bind_param</function>. Les
variables doivent être associées et, pour les paramètres qui acceptent les
entrées, nous devons leur assigner une valeur avant d'appeler
<function>db2_execute</function>.
</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'SELECT nom, race, poids FROM animaux
WHERE poids > ? AND poids < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);
// Nous pouvons déclarer la variable avant d'appeler db2_bind_param()
$lower_limit = 1;
db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);
// Nous pouvons aussi déclarer la variable après l'appel de db2_bind_param()
$upper_limit = 15.0;
if (db2_execute($stmt)) {
while ($row = db2_fetch_array($stmt)) {
print "{$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Pook, chat, 3.2
Rickety Ride, chèvre, 9.7
Peaches, chien, 12.3
]]>
</screen>
</example>
<example>
<title>Appel de procédures d'enregistrement avec les paramètres IN et OUT</title>
<para>
La procédure d'enregistrement concorde_animal dans l'exemple suivant
accepte trois différents paramètres :
<orderedlist>
<listitem>
<para>
un paramètre d'entré (IN) qui accepte le nom du premier animal en
entré
</para>
</listitem>
<listitem>
<para>
un paramètre d'entrée-sortie (INOUT) qui accepte le nom du second
animal en entré et retourne une &string; <literal>TRUE</literal> si un
animal dans la base de données correspond à ce nom
</para>
</listitem>
<listitem>
<para>
un paramètre de sortie (OUT) qui retourne la somme des poids des deux
animaux identifiés
</para>
</listitem>
</orderedlist>
De plus, la procédure d'enregistrement retourne un jeu de résultat
contenant les animaux listés en ordre alphabétique en commençant avec
l'animal correspondant à la valeur d'entrée du premier paramètre et en
terminant avec l'animal correspondant à la valeur d'entrée du deuxième
paramètre.
</para>
<programlisting role="php">
<![CDATA[
<?php
$sql = 'CALL concorde_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);
$nom = "Peaches";
$second_nom = "Rickety Ride";
$poids = 0;
db2_bind_param($stmt, 1, "nom", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_nom", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "poids", DB2_PARAM_OUT);
print "Valeurs des paramètres _avant_ CALL :\n";
print " 1: {$nom} 2: {$second_nom} 3: {$poids}\n\n";
if (db2_execute($stmt)) {
print "Valeurs des paramètres _après_ CALL :\n";
print " 1: {$nom} 2: {$second_nom} 3: {$poids}\n\n";
print "Résultats :\n";
while ($row = db2_fetch_array($stmt)) {
print " {$row[0]}, {$row[1]}, {$row[2]}\n";
}
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Valeurs des paramètres _avant_ CALL :
1: Peaches 2: Rickety Ride 3: 0
Valeurs des paramètres _après_ CALL :
1: Peaches 2: TRUE 3: 22
Résultats :
Peaches, chien, 12.3
Pook, chat, 3.2
Rickety Ride, chèvre, 9.7
]]>
</screen>
</example>
<example>
<title>Insertion d'un objet large binaire (BLOB) provenant directement d'un fichier</title>
<para>
Les données pour les objets larges sont normalement enregistrées dans des
fichiers, comme des documents XML ou des fichiers audio. Plutôt que de
lire le fichier en entier dans une variable de PHP et ensuite associer
la variable PHP dans la requête SQL, vous pouvez éviter certain
surdébit de mémoire en associant le fichier directement au paramètre
d'entrée de votre requête SQL. L'exemple suivant démontre comment
associer un fichier directement dans une colonne BLOB.
</para>
<programlisting role="php">
<![CDATA[
<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(photo) VALUES (?)");
$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>db2_execute</function></member>
<member><function>db2_prepare</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
-->