<?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-select.php',
    1 => 'pg_select',
    2 => 'Realiza una selecci&oacute;n PostgreSQL',
  ),
  'up' => 
  array (
    0 => 'ref.pgsql.php',
    1 => 'Funciones de PostgreSQL',
  ),
  'prev' => 
  array (
    0 => 'function.pg-result-status.php',
    1 => 'pg_result_status',
  ),
  'next' => 
  array (
    0 => 'function.pg-send-execute.php',
    1 => 'pg_send_execute',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/pgsql/functions/pg-select.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.pg-select" class="refentry">
 <div class="refnamediv">
 <h1 class="refname">pg_select</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.3.0, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">pg_select</span> &mdash; <span class="dc-title">
   Realiza una selección PostgreSQL
  </span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.pg-select-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>pg_select</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">$conditions</code><span class="initializer"> = []</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">$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>&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">$mode</code><span class="initializer"> = <strong><code><a href="pgsql.constants.php#constant.pgsql-assoc">PGSQL_ASSOC</a></code></strong></span></span><br>): <span class="type"><span class="type"><a href="language.types.array.php" class="type array">array</a></span>|<span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>pg_select()</strong></span> selecciona los registros por
   <code class="parameter">conditions</code> que está en formato
   <code class="literal">campo=&gt;valor</code>. Cuando la consulta tiene éxito,
   devuelve un array que contiene todos los registros y campos que
   cumplen la condición especificada por <code class="parameter">conditions</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">
   Si el parámetro <code class="parameter">mode</code> está definido,
   el valor de retorno será en forma de un array indexado
   con <strong><code><a href="pgsql.constants.php#constant.pgsql-num">PGSQL_NUM</a></code></strong>,
   un array asociativo con <strong><code><a href="pgsql.constants.php#constant.pgsql-assoc">PGSQL_ASSOC</a></code></strong> (por defecto),
   o ambos con <strong><code><a href="pgsql.constants.php#constant.pgsql-both">PGSQL_BOTH</a></code></strong>.
  </p>
  <p class="para">
   Por defecto <span class="function"><a href="function.pg-delete.php" class="function">pg_delete()</a></span> pasa valores sin tratar. Los valores
   deben ser escapados o la opción PGSQL_DML_ESCAPE debe ser proporcionada.
   PGSQL_DML_ESCAPE pone comillas y escapa los parámetros/identificadores.
   Por lo tanto, los nombres de tabla/columnas deben ser sensibles a mayúsculas y minúsculas.
  </p>
  <p class="para">
   Tenga en cuenta que ni el escape ni las consultas preparadas pueden proteger de
   consultas LIKE, JSON, Arrays, Regex, etc. Estos parámetros deberían ser
   tratados según su contexto. Es decir, escapar/validar los valores.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.pg-select-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 desde la cual seleccionar las filas.
       </p>
      </dd>
     
     
      <dt><code class="parameter">conditions</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 las condiciones que una fila debe cumplir para ser recuperada.
        A partir de PHP 8.4.0, cuando se proporciona un array vacío, no se aplicará ninguna condición.
        Anteriormente, la función fallaba con un argumento <code class="parameter">conditions</code> vacío.
       </p>
      </dd>
     
     
      <dt><code class="parameter">flags</code></dt>
      <dd>
       <p class="para">
        Cualquier número de <strong><code><a href="pgsql.constants.php#constant.pgsql-conv-force-null">PGSQL_CONV_FORCE_NULL</a></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> combinados. Si <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-string">PGSQL_DML_STRING</a></code></strong> forma parte de los
        <code class="parameter">flags</code>, entonces se devuelve la cadena de consulta. Cuando <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-no-conv">PGSQL_DML_NO_CONV</a></code></strong>
        o <strong><code><a href="pgsql.constants.php#constant.pgsql-dml-escape">PGSQL_DML_ESCAPE</a></code></strong> está activado, <span class="function"><a href="function.pg-convert.php" class="function">pg_convert()</a></span> no es llamado internamente.
       </p>
      </dd>
     
     
      <dt><code class="parameter">mode</code></dt>
      <dd>
       <p class="para">
        Cualquier número de <strong><code><a href="pgsql.constants.php#constant.pgsql-assoc">PGSQL_ASSOC</a></code></strong>,
        <strong><code><a href="pgsql.constants.php#constant.pgsql-num">PGSQL_NUM</a></code></strong> o
        <strong><code><a href="pgsql.constants.php#constant.pgsql-both">PGSQL_BOTH</a></code></strong>.
        Si <strong><code><a href="pgsql.constants.php#constant.pgsql-assoc">PGSQL_ASSOC</a></code></strong> está definido, el valor de retorno será un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> asociativo,
        con <strong><code><a href="pgsql.constants.php#constant.pgsql-num">PGSQL_NUM</a></code></strong>, el valor de retorno será un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> indexado numéricamente, y
        con <strong><code><a href="pgsql.constants.php#constant.pgsql-both">PGSQL_BOTH</a></code></strong>, el valor de retorno será tanto un <span class="type"><a href="language.types.array.php" class="type array">array</a></span> asociativo como
        numéricamente indexado.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.pg-select-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Devuelve 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>, de lo contrario esto devuelve un
   <span class="type"><a href="language.types.array.php" class="type array">array</a></span> 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 changelog" id="refsect1-function.pg-select-changelog">
  <h3 class="title">Historial de cambios</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versión</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.4.0</td>
       <td>
        <code class="parameter">conditions</code> ahora es opcional.
       </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>

      <tr>
       <td>7.1.0</td>
       <td>
        El parámetro <code class="parameter">mode</code> ha sido añadido.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.pg-select-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_select()</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 están 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">$rec </span><span style="color: #007700">= </span><span style="color: #0000BB">pg_select</span><span style="color: #007700">(</span><span style="color: #0000BB">$db</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">PG_DML_ESCAPE</span><span style="color: #007700">);<br />  if (</span><span style="color: #0000BB">$rec</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"Filas leídas\n"</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$rec</span><span style="color: #007700">);<br />  } else {<br />    echo </span><span style="color: #DD0000">"Problema en los datos de usuario\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-select-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); ?>