<?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-prepare.php',
    1 => 'db2_prepare',
    2 => 'Prepara una consulta SQL para ser ejecutada',
  ),
  'up' => 
  array (
    0 => 'ref.ibm-db2.php',
    1 => 'Funciones de IBM DB2',
  ),
  'prev' => 
  array (
    0 => 'function.db2-pconnect.php',
    1 => 'db2_pconnect',
  ),
  'next' => 
  array (
    0 => 'function.db2-primary-keys.php',
    1 => 'db2_primary_keys',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/ibm_db2/functions/db2-prepare.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.db2-prepare" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">db2_prepare</h1>
  <p class="verinfo">(PECL ibm_db2 &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">db2_prepare</span> &mdash; <span class="dc-title">
   Prepara una consulta SQL para ser ejecutada
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.db2-prepare-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>db2_prepare</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> <code class="parameter">$connection</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$statement</code></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$options</code><span class="initializer"> = []</span></span>): <span class="type"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>


  <p class="simpara">
   <span class="function"><strong>db2_prepare()</strong></span> crea una consulta SQL preparada que puede
   incluir ningún o varios marcadores (caracteres <code class="literal">?</code>)
   representando los argumentos de entrada, salida o entrada/salida. Se
   pueden pasar argumentos a la consulta preparada utilizando la
   función <span class="function"><a href="function.db2-bind-param.php" class="function">db2_bind_param()</a></span>, si solo hay entradas,
   se puede utilizar <span class="function"><a href="function.db2-execute.php" class="function">db2_execute()</a></span>.
  </p>
  <p class="para">
   Existen tres ventajas principales de utilizar consultas preparadas en
   la aplicación :
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      <em>Rendimiento</em> : al preparar una consulta, el
      servidor de base de datos crea un plan de acceso optimizado para la
      recuperación de datos con la consulta. Posteriormente, el envío de la
      consulta preparada con <span class="function"><a href="function.db2-execute.php" class="function">db2_execute()</a></span> permite a la
      consulta reutilizar el plan de acceso y así evitar sobrecargas del
      procesador en cada envío de consulta que crearía dinámicamente un
      nuevo plan de acceso.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <em>Seguridad</em> : al preparar una consulta, se pueden
      incluir marcadores para los valores de entrada. Al ejecutar una
      consulta preparada con estos valores de entrada, el servidor de
      base de datos verifica cada valor de entrada para asegurarse de que
      los tipos coincidan con la definición de la columna o del parámetro
      de definición.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      <em>Funcionalidad avanzada</em> : Los marcadores permiten
      no solo pasar valores de entrada en las consultas SQL preparadas,
      sino también recuperar parámetros de SALIDA y de ENTRADA/SALIDA de
      los procedimientos de registro utilizando la función
      <span class="function"><a href="function.db2-bind-param.php" class="function">db2_bind_param()</a></span>.
     </span>
    </li>
   </ul>
  </p>

 </div>

 <div class="refsect1 parameters" id="refsect1-function.db2-prepare-parameters">
  <h3 class="title">Parámetros</h3>
  <dl>
   
    <dt><code class="parameter">connection</code></dt>
    <dd>
     <span class="simpara">
      Una variable recurso de conexión válida devuelta por
      <span class="function"><a href="function.db2-connect.php" class="function">db2_connect()</a></span> o <span class="function"><a href="function.db2-pconnect.php" class="function">db2_pconnect()</a></span>.
     </span>
    </dd>
   
   
    <dt><code class="parameter">statement</code></dt>
    <dd>
     <span class="simpara">
      Una consulta SQL que puede contener uno o varios marcadores.
     </span>
    </dd>
   
   
    <dt><code class="parameter">options</code></dt>
    <dd>
     <span class="simpara">
      Un array asociativo que contiene las opciones de la consulta. Se
      puede utilizar este parámetro para solicitar un cursor flotante en
      los servidores de base de datos que soportan esta funcionalidad.
     </span>
     <span class="simpara">
      Para una descripción de las opciones válidas, consulte la función
      <span class="function"><a href="function.db2-set-option.php" class="function">db2_set_option()</a></span>.
     </span>
    </dd>
   
  </dl>
 </div>

 <div class="refsect1 returnvalues" id="refsect1-function.db2-prepare-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="simpara">
   Devuelve una variable recurso si la consulta SQL fue enviada
   correctamente o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si el servidor de base de datos ha
   devuelto un error. Se puede determinar qué error fue devuelto
   llamando a la función
   <span class="function"><a href="function.db2-stmt-error.php" class="function">db2_stmt_error()</a></span> o <span class="function"><a href="function.db2-stmt-errormsg.php" class="function">db2_stmt_errormsg()</a></span>.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.db2-prepare-examples">
  <h3 class="title">Ejemplos</h3>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Preparación y ejecución de una consulta SQL con marcadores</strong></p>
   <div class="example-contents"><p>
    El siguiente ejemplo prepara una consulta INSERT que acepta cuatro
    marcadores, luego itera sobre el array que contiene los valores de
    entrada que serán pasados a la función <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 />$animales </span><span style="color: #007700">= array(<br />    array(</span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #DD0000">'gato'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Pook'</span><span style="color: #007700">, </span><span style="color: #0000BB">3.2</span><span style="color: #007700">),<br />    array(</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">'perro'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Peaches'</span><span style="color: #007700">, </span><span style="color: #0000BB">12.3</span><span style="color: #007700">),<br />    array(</span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #DD0000">'caballo'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Smarty'</span><span style="color: #007700">, </span><span style="color: #0000BB">350.0</span><span style="color: #007700">),<br />);<br /><br /></span><span style="color: #0000BB">$insert </span><span style="color: #007700">= </span><span style="color: #DD0000">'INSERT INTO animales (id, raza, nombre, peso)<br />    VALUES (?, ?, ?, ?)'</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">$insert</span><span style="color: #007700">);<br />if (</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">) {<br />    foreach (</span><span style="color: #0000BB">$animales </span><span style="color: #007700">as </span><span style="color: #0000BB">$animal</span><span style="color: #007700">) {<br />        </span><span style="color: #0000BB">$result </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">, </span><span style="color: #0000BB">$animal</span><span style="color: #007700">);<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.db2-prepare-seealso">
  <h3 class="title">Ver también</h3>
  <ul class="simplelist">
   <li><span class="function"><a href="function.db2-bind-param.php" class="function" rel="rdfs-seeAlso">db2_bind_param()</a> - Asocia una variable PHP a un par&aacute;metro de una consulta SQL</span></li>
   <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-stmt-error.php" class="function" rel="rdfs-seeAlso">db2_stmt_error()</a> - Devuelve un string que contiene el valor de SQLSTATE retornado por una consulta SQL</span></li>
   <li><span class="function"><a href="function.db2-stmt-errormsg.php" class="function" rel="rdfs-seeAlso">db2_stmt_errormsg()</a> - Devuelve el &uacute;ltimo mensaje de error de una consulta SQL</span></li>
  </ul>
 </div>

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