pg_select
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_select —
Seleciona registros
Descrição
Se flags estiver definido,
pg_convert() será aplicado às
conditions com as opções (flags) especificadas.
Se mode for definido,
o valor de retorno estará na forma de um array
com PGSQL_NUM, um array associativo
com PGSQL_ASSOC (padrão) ou ambos
com PGSQL_BOTH.
Por padrão, pg_select() passa valores brutos. Os valores
devem ter escape ou a opção PGSQL_DML_ESCAPE deve ser
especificada. PGSQL_DML_ESCAPE cita e escapa
parâmetros/identificadores. Portanto, os nomes de tabelas/colunas tornaram-se
sensíveis a maiúsculas e minúsculas.
Observe que nem o escape nem a consulta preparada podem proteger a consulta LIKE,
JSON, Array, Regex, etc. Esses parâmetros devem ser tratados
de acordo com seus contextos. ou seja, escapar/validar valores.
Parâmetros
connection
-
Uma instância de PgSql\Connection.
table_name
-
Nome da tabela da qual selecionar linhas.
conditions
-
Um array cujas chaves são nomes de campos na tabela table_name
e cujos valores são as condições que uma linha deve atender para ser recuperada.
A partir do PHP 8.4.0, quando um array vazio for fornecido, nenhuma condição será aplicada.
Anteriormente, a função falhava com um argumento conditions vazio.
flags
-
Qualquer número de PGSQL_CONV_FORCE_NULL,
PGSQL_DML_NO_CONV,
PGSQL_DML_ESCAPE,
PGSQL_DML_EXEC,
PGSQL_DML_ASYNC ou
PGSQL_DML_STRING combinado. Se PGSQL_DML_STRING fizer parte dos
flags então a string de consulta será retornada. Quando PGSQL_DML_NO_CONV
ou PGSQL_DML_ESCAPE está definido, ele não chama pg_convert() internamente.
mode
-
Qualquer número de PGSQL_ASSOC,
PGSQL_NUM ou
PGSQL_BOTH
Se PGSQL_ASSOC for definido o valor de retorno será um array associativo,
com PGSQL_NUM o valor de retorno será um array , e
com PGSQL_BOTH o valor de retorno será um
array associativo e indexado numericamente.
Exemplos
Exemplo #1 Exemplo de pg_select()
<?php
$db = pg_connect('dbname=foo');
// Isso é um tanto seguro, já que todos os valores têm escape.
// No entanto, o PostgreSQL suporta JSON/Array. Estes não são
// seguros nem por escape nem por consulta preparada.
$rec = pg_select($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($rec) {
echo "Registros selecionados\n";
var_dump($rec);
} else {
echo "Usuário deve ter enviado entradas erradas\n";
}
?>
Veja Também
- pg_convert() - Converte valores de array associativo em formas adequadas para instruções SQL