<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.ibm-db2.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.db2-bind-param.php',
    1 => 'db2_bind_param',
    2 => 'Associe une variable PHP &agrave; un param&egrave;tre d\'une requ&ecirc;te SQL',
  ),
  'up' => 
  array (
    0 => 'ref.ibm-db2.php',
    1 => 'Fonctions IBM DB2',
  ),
  'prev' => 
  array (
    0 => 'function.db2-autocommit.php',
    1 => 'db2_autocommit',
  ),
  'next' => 
  array (
    0 => 'function.db2-client-info.php',
    1 => 'db2_client_info',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/ibm_db2/functions/db2-bind-param.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.db2-bind-param" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">db2_bind_param</h1>
  <p class="verinfo">(PECL ibm_db2 &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">db2_bind_param</span> &mdash; <span class="dc-title">
   Associe une variable PHP à un paramètre d&#039;une requête SQL
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.db2-bind-param-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>db2_bind_param</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> <code class="parameter">$stmt</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$parameter_number</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$variable_name</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$parameter_type</code><span class="initializer"> = <strong><code><a href="ibm-db2.constants.php#constant.db2-param-in">DB2_PARAM_IN</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$data_type</code><span class="initializer"> = 0</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$precision</code><span class="initializer"> = -1</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$scale</code><span class="initializer"> = 0</span></span><br>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>


  <p class="simpara">
   Associe une variable PHP à un paramètre dans la requête SQL
   retournée par <span class="function"><a href="function.db2-prepare.php" class="function">db2_prepare()</a></span>. Cette fonction donne
   plus de contrôle sur les types des paramètres, les types des données, la
   précision, et l&#039;échelle pour le paramètre qu&#039;en lui passant simplement une
   variable à l&#039;intérieur du tableau d&#039;entrée optionnel de la fonction
   <span class="function"><a href="function.db2-execute.php" class="function">db2_execute()</a></span>.
  </p>

 </div>

 <div class="refsect1 parameters" id="refsect1-function.db2-bind-param-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">stmt</code></dt>
    <dd>
     <span class="simpara">
      Une requête préparée retournée par <span class="function"><a href="function.db2-prepare.php" class="function">db2_prepare()</a></span>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">parameter_number</code></dt>
    <dd>
     <span class="simpara">
      Spécifie la position du paramètre commençant à l&#039;indice 1 dans la
      requête préparée.
     </span>
    </dd>
   
   
    <dt><code class="parameter">variable_name</code></dt>
    <dd>
     <span class="simpara">
      Une chaîne spécifiant le nom de la variable PHP à associer au
      paramètre spécifié par <code class="parameter">parameter_number</code>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">parameter_type</code></dt>
    <dd>
     <span class="simpara">
      Une constante spécifiant si la variable PHP devrait être associée au
      paramètre SQL en tant que paramètre entrant
      (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-in">DB2_PARAM_IN</a></code></strong>), que paramètre sortant
      (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-out">DB2_PARAM_OUT</a></code></strong>) ou en tant que paramètre qui accepte
      les entrées et les sorties (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-inout">DB2_PARAM_INOUT</a></code></strong>).
      Pour éviter une surconsommation de la mémoire, il est aussi possible de spécifier
      <strong><code><a href="ibm-db2.constants.php#constant.db2-param-file">DB2_PARAM_FILE</a></code></strong> pour attacher la variable PHP au
      nom du fichier qui contient les données de l&#039;objet large (BLOB, CLOB ou
      DBCLOB).
     </span>
    </dd>
   
   
    <dt><code class="parameter">data_type</code></dt>
    <dd>
     <span class="simpara">
      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 : <strong><code><a href="ibm-db2.constants.php#constant.db2-binary">DB2_BINARY</a></code></strong>,
      <strong><code><a href="ibm-db2.constants.php#constant.db2-char">DB2_CHAR</a></code></strong>, <strong><code><a href="ibm-db2.constants.php#constant.db2-double">DB2_DOUBLE</a></code></strong> ou
      <strong><code><a href="ibm-db2.constants.php#constant.db2-long">DB2_LONG</a></code></strong>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">precision</code></dt>
    <dd>
     <span class="simpara">
      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&#039;est
      pas utilisé, une taille par défaut de 1 Mo sera définie pour récupérer
      les valeurs de sortie XML depuis la procédure stockée.
     </span>
    </dd>
   
   
    <dt><code class="parameter">scale</code></dt>
    <dd>
     <span class="simpara">
      Spécifie l&#039;échelle à laquelle la variable devrait être associée à la
      base de données.
     </span>
    </dd>
   
  </dl>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.db2-bind-param-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="simpara">
   Cette fonction retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en cas de succès ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si une erreur survient.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.db2-bind-param-examples">
  <h3 class="title">Exemples</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemple #1 Association de variables PHP à une requête préparée</strong></p>
    <div class="example-contents"><p>
     La requête SQL dans l&#039;exemple suivant utilise deux paramètres d&#039;entrée
     dans la section WHERE. Nous appelons <span class="function"><strong>db2_bind_param()</strong></span>
     pour associer deux variables qui n&#039;ont pas été déclarées ou assignées
     avant l&#039;appel de <span class="function"><strong>db2_bind_param()</strong></span>; dans cet exemple,
     <code class="literal">$lower_limit</code> est assignée avant d&#039;être appelée à
     <span class="function"><strong>db2_bind_param()</strong></span>, mais <code class="literal">$upper_limit</code>
     est assignée après l&#039;appel de <span class="function"><strong>db2_bind_param()</strong></span>. Les
     variables doivent être associées et, pour les paramètres qui acceptent les
     entrées, nous devons leur assigner une valeur avant d&#039;appeler
     <span class="function"><a href="function.db2-execute.php" class="function">db2_execute()</a></span>.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'SELECT nom, race, poids FROM animaux<br />    WHERE poids &gt; ? AND poids &lt; ?'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$database</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$password</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Nous pouvons déclarer la variable avant d'appeler db2_bind_param()<br /></span><span style="color: #0000BB">$lower_limit </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">"lower_limit"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_IN</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #DD0000">"upper_limit"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_IN</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Nous pouvons aussi déclarer la variable après l'appel de db2_bind_param()<br /></span><span style="color: #0000BB">$upper_limit </span><span style="color: #007700">= </span><span style="color: #0000BB">15.0</span><span style="color: #007700">;<br /><br />if (</span><span style="color: #0000BB">db2_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />    while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_fetch_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />        print </span><span style="color: #DD0000">"</span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]}</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>L&#039;exemple ci-dessus va afficher :</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Pook, chat, 3.2
Rickety Ride, chèvre, 9.7
Peaches, chien, 12.3</pre>
</div>
    </div>
   </div>
   <div class="example" id="example-2">
    <p><strong>Exemple #2 Appel de procédures d&#039;enregistrement avec les paramètres IN et OUT</strong></p>
    <div class="example-contents"><p>
     La procédure d&#039;enregistrement concorde_animal dans l&#039;exemple suivant
     accepte trois différents paramètres :
     <ol type="1">
      <li class="listitem">
       <span class="simpara">
        un paramètre d&#039;entrée (IN) qui accepte le nom du premier animal en
        entrée
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        un paramètre d&#039;entrée-sortie (INOUT) qui accepte le nom du second
        animal en entrée et retourne une <a href="language.types.string.php" class="link">chaîne de caractères</a> <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> si un
        animal dans la base de données correspond à ce nom
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        un paramètre de sortie (OUT) qui retourne la somme des poids des deux
        animaux identifiés
       </span>
      </li>
     </ol>
     De plus, la procédure d&#039;enregistrement retourne un jeu de résultats
     contenant les animaux listés en ordre alphabétique en commençant avec
     l&#039;animal correspondant à la valeur d&#039;entrée du premier paramètre et en
     terminant avec l&#039;animal correspondant à la valeur d&#039;entrée du deuxième
     paramètre.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'CALL concorde_animal(?, ?, ?)'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$database</span><span style="color: #007700">, </span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$password</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #0000BB">$sql</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$nom </span><span style="color: #007700">= </span><span style="color: #DD0000">"Peaches"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$second_nom </span><span style="color: #007700">= </span><span style="color: #DD0000">"Rickety Ride"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$poids </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">"nom"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_IN</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #DD0000">"second_nom"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_INOUT</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">3</span><span style="color: #007700">, </span><span style="color: #DD0000">"poids"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_OUT</span><span style="color: #007700">);<br /><br />print </span><span style="color: #DD0000">"Valeurs des paramètres _avant_ CALL :\n"</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"  1: </span><span style="color: #007700">{</span><span style="color: #0000BB">$nom</span><span style="color: #007700">}</span><span style="color: #DD0000"> 2: </span><span style="color: #007700">{</span><span style="color: #0000BB">$second_nom</span><span style="color: #007700">}</span><span style="color: #DD0000"> 3: </span><span style="color: #007700">{</span><span style="color: #0000BB">$poids</span><span style="color: #007700">}</span><span style="color: #DD0000">\n\n"</span><span style="color: #007700">;<br /><br />if (</span><span style="color: #0000BB">db2_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />    print </span><span style="color: #DD0000">"Valeurs des paramètres _après_ CALL :\n"</span><span style="color: #007700">;<br />    print </span><span style="color: #DD0000">"  1: </span><span style="color: #007700">{</span><span style="color: #0000BB">$nom</span><span style="color: #007700">}</span><span style="color: #DD0000"> 2: </span><span style="color: #007700">{</span><span style="color: #0000BB">$second_nom</span><span style="color: #007700">}</span><span style="color: #DD0000"> 3: </span><span style="color: #007700">{</span><span style="color: #0000BB">$poids</span><span style="color: #007700">}</span><span style="color: #DD0000">\n\n"</span><span style="color: #007700">;<br /><br />    print </span><span style="color: #DD0000">"Résultats :\n"</span><span style="color: #007700">;<br />    while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_fetch_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br />        print </span><span style="color: #DD0000">"  </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">]}</span><span style="color: #DD0000">, </span><span style="color: #007700">{</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]}</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>L&#039;exemple ci-dessus va afficher :</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">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</pre>
</div>
    </div>
   </div>
   <div class="example" id="example-3">
    <p><strong>Exemple #3 Insertion d&#039;un objet large binaire (BLOB) provenant directement d&#039;un fichier</strong></p>
    <div class="example-contents"><p>
     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, il est possible d&#039;éviter certains
     surcoûts de mémoire en associant le fichier directement au paramètre
     d&#039;entrée de la requête SQL. L&#039;exemple suivant démontre comment
     associer un fichier directement dans une colonne BLOB.
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"INSERT INTO animal_pictures(photo) VALUES (?)"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$picture </span><span style="color: #007700">= </span><span style="color: #DD0000">"/opt/albums/spook/grooming.jpg"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$rc </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_bind_param</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">"picture"</span><span style="color: #007700">, </span><span style="color: #0000BB">DB2_PARAM_FILE</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$rc </span><span style="color: #007700">= </span><span style="color: #0000BB">db2_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.db2-bind-param-seealso">
  <h3 class="title">Voir aussi</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.db2-execute.php" class="function" rel="rdfs-seeAlso">db2_execute()</a> - Ex&eacute;cute une requ&ecirc;te SQL pr&eacute;par&eacute;e</span></li>
   <li><span class="function"><a href="function.db2-prepare.php" class="function" rel="rdfs-seeAlso">db2_prepare()</a> - Pr&eacute;pare une requ&ecirc;te SQL &agrave; &ecirc;tre ex&eacute;cut&eacute;e</span></li>
  </ul>
 </div>


</div><?php manual_footer($setup); ?>