<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.db2-bind-param.php',
    1 => 'db2_bind_param',
    2 => 'Asocia una variable PHP a un par&aacute;metro de una consulta SQL',
  ),
  'up' => 
  array (
    0 => 'ref.ibm-db2.php',
    1 => 'Funciones de 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' => 'es',
    '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">
   Asocia una variable PHP a un parámetro de una consulta SQL
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.db2-bind-param-description">
  <h3 class="title">Descripción</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">
   Asocia una variable PHP a un parámetro en la consulta SQL
   devuelta por <span class="function"><a href="function.db2-prepare.php" class="function">db2_prepare()</a></span>. Esta función permite
   mayor control sobre los tipos de los parámetros, los tipos de datos, la
   precisión y la escala para el parámetro que al pasarle simplemente una
   variable dentro del array de entrada opcional de la función
   <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">Parámetros</h3>
  <dl>
   
    <dt><code class="parameter">stmt</code></dt>
    <dd>
     <span class="simpara">
      Una consulta preparada devuelta por <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">
      Especifica la posición del parámetro comenzando en el índice 1 en la
      consulta preparada.
     </span>
    </dd>
   
   
    <dt><code class="parameter">variable_name</code></dt>
    <dd>
     <span class="simpara">
      Una cadena que especifica el nombre de la variable PHP a asociar al
      parámetro especificado por <code class="parameter">parameter_number</code>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">parameter_type</code></dt>
    <dd>
     <span class="simpara">
      Una constante que especifica si la variable PHP debe ser asociada al
      parámetro SQL como parámetro de entrada
      (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-in">DB2_PARAM_IN</a></code></strong>), como parámetro de salida
      (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-out">DB2_PARAM_OUT</a></code></strong>) o como parámetro que acepta
      entradas y salidas (<strong><code><a href="ibm-db2.constants.php#constant.db2-param-inout">DB2_PARAM_INOUT</a></code></strong>).
      Para evitar un exceso de consumo de memoria, también puede especificarse
      <strong><code><a href="ibm-db2.constants.php#constant.db2-param-file">DB2_PARAM_FILE</a></code></strong> para asociar la variable PHP al
      nombre del archivo que contiene los datos del objeto grande (BLOB, CLOB o
      DBCLOB).
     </span>
    </dd>
   
   
    <dt><code class="parameter">data_type</code></dt>
    <dd>
     <span class="simpara">
      Una constante que especifica el tipo de datos SQL que la variable PHP
      debe ser asociada. El parámetro debe tomar uno de los siguientes valores:
      <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> o <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">
      Especifica la precisión con la que la variable debe ser asociada a
      la base de datos. Este parámetro también puede ser utilizado para
      recuperar valores de salida XML para procedimientos almacenados.
      Un valor no negativo especifica el tamaño máximo de los datos XML
      que serán recuperados desde la base de datos. Si este parámetro no es
      utilizado, se definirá un tamaño por defecto de 1 MB para recuperar
      los valores de tipo XML desde el procedimiento almacenado.
     </span>
    </dd>
   
   
    <dt><code class="parameter">scale</code></dt>
    <dd>
     <span class="simpara">
      Especifica la escala con la que la variable debe ser asociada a la
      base de datos.
     </span>
    </dd>
   
  </dl>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.db2-bind-param-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="simpara">
   Esta función retorna <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en caso de éxito o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si ocurre un error.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.db2-bind-param-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Asociación de variables PHP a una consulta preparada</strong></p>
    <div class="example-contents"><p>
     La consulta SQL en el siguiente ejemplo utiliza dos parámetros de entrada
     en la sección WHERE. Se llama a <span class="function"><strong>db2_bind_param()</strong></span>
     para asociar dos variables que no han sido declaradas o asignadas
     antes de la llamada a <span class="function"><strong>db2_bind_param()</strong></span>; en este ejemplo,
     <code class="literal">$lower_limit</code> es asignada antes de ser llamada a
     <span class="function"><strong>db2_bind_param()</strong></span>, pero <code class="literal">$upper_limit</code>
     es asignada después de la llamada a <span class="function"><strong>db2_bind_param()</strong></span>. Las
     variables deben ser asociadas y, para los parámetros que aceptan entradas,
     se les debe asignar un valor antes de llamar a <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">// Se puede declarar la variable antes de llamar a 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">// También se puede declarar la variable después de llamar a 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>El ejemplo anterior mostrará:</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>Ejemplo #2 Llamada a procedimientos de registro con parámetros IN y OUT</strong></p>
    <div class="example-contents"><p>
     El procedimiento de registro concorde_animal en el siguiente ejemplo
     acepta tres diferentes parámetros:
     <ol type="1">
      <li class="listitem">
       <span class="simpara">
        un parámetro de entrada (IN) que acepta el nombre del primer animal en
        entrada
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        un parámetro de entrada-salida (INOUT) que acepta el nombre del segundo
        animal en entrada y devuelve un <span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="literal">TRUE</code> si un
        animal en la base de datos coincide con este nombre
       </span>
      </li>
      <li class="listitem">
       <span class="simpara">
        un parámetro de salida (OUT) que devuelve la suma de los pesos de los dos
        animales identificados
       </span>
      </li>
     </ol>
     Además, el procedimiento de registro devuelve un conjunto de resultados
     que contiene los animales listados en orden alfabético comenzando con
     el animal correspondiente al valor de entrada del primer parámetro y
     terminando con el animal correspondiente al valor de entrada del segundo
     parámetro.
    </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">"Valores de los parámetros _antes_ de 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">"Valores de los parámetros _después_ de 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">"Resultados :\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>El ejemplo anterior mostrará:</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Valores de los parámetros _antes_ de CALL :
  1: Peaches 2: Rickety Ride 3: 0

Valores de los parámetros _después_ de CALL :
  1: Peaches 2: TRUE 3: 22

Resultados :
  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>Ejemplo #3 Inserción de un objeto grande binario (BLOB) directamente desde un archivo</strong></p>
    <div class="example-contents"><p>
     Los datos para los objetos grandes normalmente se almacenan en archivos,
     como documentos XML o archivos de audio. En lugar de leer el archivo
     completo en una variable de PHP y luego asociar la variable PHP en la
     consulta SQL, se puede evitar cierto sobrecoste de memoria asociando el
     archivo directamente al parámetro de entrada de su consulta SQL. El
     siguiente ejemplo demuestra cómo asociar un archivo directamente en una
     columna 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">Ver también</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.db2-execute.php" class="function" rel="rdfs-seeAlso">db2_execute()</a> - Ejecuta una consulta SQL preparada</span></li>
   <li><span class="function"><a href="function.db2-prepare.php" class="function" rel="rdfs-seeAlso">db2_prepare()</a> - Prepara una consulta SQL para ser ejecutada</span></li>
  </ul>
 </div>


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