<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.pgsql.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.pg-insert.php',
    1 => 'pg_insert',
    2 => 'Inserta un array en una tabla',
  ),
  'up' => 
  array (
    0 => 'ref.pgsql.php',
    1 => 'Funciones de PostgreSQL',
  ),
  'prev' => 
  array (
    0 => 'function.pg-host.php',
    1 => 'pg_host',
  ),
  'next' => 
  array (
    0 => 'function.pg-last-error.php',
    1 => 'pg_last_error',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/pgsql/functions/pg-insert.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.pg-insert" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">pg_insert</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.3.0, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">pg_insert</span> &mdash; <span class="dc-title">
   Inserta un array en una tabla
  </span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.pg-insert-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>pg_insert</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="class.pgsql-connection.php" class="type PgSql\Connection">PgSql\Connection</a></span> <code class="parameter">$connection</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">$table_name</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$values</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">$flags</code><span class="initializer"> = <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-exec">PGSQL_DML_EXEC</a></code></strong></span></span><br>): <span class="type"><span class="type"><a href="class.pgsql-result.php" class="type PgSql\Result">PgSql\Result</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>pg_insert()</strong></span> inserta los <code class="parameter">values</code>
   en la tabla <code class="parameter">table_name</code>.
  </p>
  <p class="para">
   Si <code class="parameter">flags</code> está especificado,
   <span class="function"><a href="function.pg-convert.php" class="function">pg_convert()</a></span> se aplica a
   <code class="parameter">values</code> con los flags proporcionados.
  </p>
  <p class="para">
   Por omisión, <span class="function"><strong>pg_insert()</strong></span> pasa valores sin tratar.
   Los valores deben ser escapados o el flag <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-escape">PGSQL_DML_ESCAPE</a></code></strong>
   debe ser especificado en <code class="parameter">flags</code>.
   <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-escape">PGSQL_DML_ESCAPE</a></code></strong> coloca comillas y escapa los parámetros/identificadores.
   Por consiguiente, los nombres de tabla/columnas se vuelven sensibles a mayúsculas y minúsculas.
  </p>
  <p class="para">
   Tenga en cuenta que ni el escape ni las consultas preparadas pueden proteger
   consultas LIKE, JSON, arrays, Regex, etc. Estos parámetros deben ser
   tratados de acuerdo con su contexto. Es decir, escapar/validar los valores.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.pg-insert-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">connection</code></dt>
     <dd>
      <p class="para">Una instancia <span class="classname"><a href="class.pgsql-connection.php" class="classname">PgSql\Connection</a></span>.</p>
     </dd>
    
    
     <dt><code class="parameter">table_name</code></dt>
     <dd>
      <p class="para">
       Nombre de la tabla en la que se insertarán las filas. La tabla
       <code class="parameter">table_name</code> debe tener al menos tantas columnas
       como elementos tenga <code class="parameter">values</code>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">values</code></dt>
     <dd>
      <p class="para">
       Un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> cuyas claves son los nombres de los campos en la tabla <code class="parameter">table_name</code>,
       y cuyos valores son los valores de esos campos que serán insertados.
      </p>
     </dd>
    
    
     <dt><code class="parameter">flags</code></dt>
     <dd>
      <p class="para">
       Cualquier combinación de constantes entre
       <strong><code>PGSQL_CONV_OPTS</code></strong>,
       <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-no-conv">PGSQL_DML_NO_CONV</a></code></strong>,
       <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-escape">PGSQL_DML_ESCAPE</a></code></strong>,
       <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-exec">PGSQL_DML_EXEC</a></code></strong>,
       <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-async">PGSQL_DML_ASYNC</a></code></strong> o
       <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-string">PGSQL_DML_STRING</a></code></strong>. Si
       <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-string">PGSQL_DML_STRING</a></code></strong> forma parte del parámetro
       <code class="parameter">flags</code>, entonces la consulta será retornada.
       Cuando la constante <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-no-conv">PGSQL_DML_NO_CONV</a></code></strong> o la constante
       <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-escape">PGSQL_DML_ESCAPE</a></code></strong> está definida, no se realizará ninguna llamada a la función
       <span class="function"><a href="function.pg-convert.php" class="function">pg_convert()</a></span> internamente.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.pg-insert-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   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.. O retorna un <span class="type"><a href="language.types.string.php" class="type string">string</a></span> si <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-string">PGSQL_DML_STRING</a></code></strong>
   es proporcionado a través de <code class="parameter">flags</code>.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-function.pg-insert-errors">
  <h3 class="title">Errores/Excepciones</h3>
  <p class="para">
   Se lanza una <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> cuando la tabla especificada es inválida.
  </p>
  <p class="para">
   Se lanza una <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> o <span class="classname"><a href="class.typeerror.php" class="classname">TypeError</a></span> cuando
   el valor o el tipo del campo no coincide correctamente con un tipo PostgreSQL.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.pg-insert-changelog">
  <h3 class="title">Historial de cambios</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versión</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.3.0</td>
      <td>
       Ahora lanza un error <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> cuando la tabla especificada es inválida;
       anteriormente, se emitía un <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>.
      </td>
     </tr>

     <tr>
      <td>8.3.0</td>
      <td>
       Ahora lanza un error <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span> o <span class="classname"><a href="class.typeerror.php" class="classname">TypeError</a></span>
       cuando el valor o el tipo del campo no coincide correctamente con un tipo PostgreSQL;
       anteriormente, se emitía un <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>.
      </td>
     </tr>

     <tr>
 <td>8.1.0</td>
 <td>
  Ahora devuelve una instancia de <span class="classname"><a href="class.pgsql-result.php" class="classname">PgSql\Result</a></span> ;
  anteriormente, se devolvía un <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>.
 </td>
</tr>

     <tr>
 <td>8.1.0</td>
 <td>
  El parámetro <code class="parameter">connection</code> ahora espera una instancia de
  <span class="classname"><a href="class.pgsql-connection.php" class="classname">PgSql\Connection</a></span> ; anteriormente, se esperaba un <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>.
 </td>
</tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-function.pg-insert-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo con <span class="function"><strong>pg_insert()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />  $db </span><span style="color: #007700">= </span><span style="color: #0000BB">pg_connect </span><span style="color: #007700">(</span><span style="color: #DD0000">'dbname=foo'</span><span style="color: #007700">);<br />  </span><span style="color: #FF8000">// Esto es seguro en cierta medida, ya que todos los valores son escapados<br />  // Sin embargo, PostgreSQL soporta JSON/arrays. Estos no son<br />  // seguros ni por escape ni por consultas preparadas.<br />  </span><span style="color: #0000BB">$res </span><span style="color: #007700">= </span><span style="color: #0000BB">pg_insert</span><span style="color: #007700">(</span><span style="color: #0000BB">$dbconn</span><span style="color: #007700">, </span><span style="color: #DD0000">'post_log'</span><span style="color: #007700">, </span><span style="color: #0000BB">$_POST</span><span style="color: #007700">, </span><span style="color: #0000BB">PGSQL_DML_ESCAPE</span><span style="color: #007700">);<br />  if (</span><span style="color: #0000BB">$res</span><span style="color: #007700">) {<br />      echo </span><span style="color: #DD0000">"Los datos POSTeados han podido ser registrados con éxito.\n"</span><span style="color: #007700">;<br />  } else {<br />      echo </span><span style="color: #DD0000">"Hay un problema con los datos.\n"</span><span style="color: #007700">;<br />  }<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

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


 <div class="refsect1 seealso" id="refsect1-function.pg-insert-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.pg-convert.php" class="function" rel="rdfs-seeAlso">pg_convert()</a> - Convierte valores de un array asociativo a una forma adecuada para consultas SQL</span></li>
   </ul>
  </p>
 </div>

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