mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-26 09:52:17 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@346490 c90b9560-bf6c-de11-be94-00142212c4b1
315 lines
10 KiB
XML
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
|
|
-->
|