1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-24 15:32:36 +01:00
Files
archived-doc-es/reference/pgsql/functions/pg-select.xml

211 lines
7.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 18aa2012f6fa1e5b09733147e02911d16e06d4a1 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.pg-select" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pg_select</refname>
<refpurpose>
Realiza una selección PostgreSQL
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>string</type><type>false</type></type><methodname>pg_select</methodname>
<methodparam><type>PgSql\Connection</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>table_name</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>conditions</parameter><initializer>[]</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer><constant>PGSQL_DML_EXEC</constant></initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer><constant>PGSQL_ASSOC</constant></initializer></methodparam>
</methodsynopsis>
<para>
<function>pg_select</function> selecciona los registros por
<parameter>conditions</parameter> que está en formato
<literal>campo=&gt;valor</literal>. Cuando la consulta tiene éxito,
devuelve un array que contiene todos los registros y campos que
cumplen la condición especificada por <parameter>conditions</parameter>.
</para>
<para>
Si <parameter>flags</parameter> está especificado,
<function>pg_convert</function> se aplica a
<parameter>values</parameter> con los flags proporcionados.
</para>
<para>
Si el parámetro <parameter>mode</parameter> está definido,
el valor de retorno será en forma de un array indexado
con <constant>PGSQL_NUM</constant>,
un array asociativo con <constant>PGSQL_ASSOC</constant> (por defecto),
o ambos con <constant>PGSQL_BOTH</constant>.
</para>
<para>
Por defecto <function>pg_delete</function> 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.
</para>
<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.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>connection</parameter></term>
<listitem>
&pgsql.parameter.connection;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>table_name</parameter></term>
<listitem>
<para>
Nombre de la tabla desde la cual seleccionar las filas.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>conditions</parameter></term>
<listitem>
<para>
Un <type>array</type> cuyas claves son los nombres de los campos en la tabla <parameter>table_name</parameter>,
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 <parameter>conditions</parameter> vacío.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
Cualquier número de <constant>PGSQL_CONV_FORCE_NULL</constant>,
<constant>PGSQL_DML_NO_CONV</constant>,
<constant>PGSQL_DML_ESCAPE</constant>,
<constant>PGSQL_DML_EXEC</constant>,
<constant>PGSQL_DML_ASYNC</constant> o
<constant>PGSQL_DML_STRING</constant> combinados. Si <constant>PGSQL_DML_STRING</constant> forma parte de los
<parameter>flags</parameter>, entonces se devuelve la cadena de consulta. Cuando <constant>PGSQL_DML_NO_CONV</constant>
o <constant>PGSQL_DML_ESCAPE</constant> está activado, <function>pg_convert</function> no es llamado internamente.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Cualquier número de <constant>PGSQL_ASSOC</constant>,
<constant>PGSQL_NUM</constant> o
<constant>PGSQL_BOTH</constant>.
Si <constant>PGSQL_ASSOC</constant> está definido, el valor de retorno será un <type>array</type> asociativo,
con <constant>PGSQL_NUM</constant>, el valor de retorno será un <type>array</type> indexado numéricamente, y
con <constant>PGSQL_BOTH</constant>, el valor de retorno será tanto un <type>array</type> asociativo como
numéricamente indexado.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un <type>string</type> si <constant>PGSQL_DML_STRING</constant>
es proporcionado a través de <parameter>flags</parameter>, de lo contrario esto devuelve un
<type>array</type> en caso de éxito, &return.falseforfailure;.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.4.0</entry>
<entry>
<parameter>conditions</parameter> ahora es opcional.
</entry>
</row>
&pgsql.changelog.connection-object;
<row>
<entry>7.1.0</entry>
<entry>
El parámetro <parameter>mode</parameter> ha sido añadido.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo con <function>pg_select</function></title>
<programlisting role="php">
<![CDATA[
<?php
$db = pg_connect ('dbname=foo');
// Esto es seguro en cierta medida, ya que todos los valores están escapados
// Sin embargo PostgreSQL soporta JSON/Arrays. Estos no son
// seguros ni por escape ni por consultas preparadas.
$rec = pg_select($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($rec) {
echo "Filas leídas\n";
var_dump($rec);
} else {
echo "Problema en los datos de usuario\n";
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>pg_convert</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->