pg_select
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_select — Seleciona registros
Descrição
PgSql\Connection
$connection
,string
$table_name
,array
$conditions
,int
$flags
= PGSQL_DML_EXEC
,int
$mode
= PGSQL_ASSOC
): array|string|false
pg_select() seleciona registros especificados por
conditions
que tem
field=>value
. Para uma consulta bem-sucedida, ele retorna um
array contendo todos os registros e campos que correspondem à condição
especificada por conditions
.
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. flags
-
Qualquer número de
PGSQL_CONV_FORCE_NULL
,PGSQL_DML_NO_CONV
,PGSQL_DML_ESCAPE
,PGSQL_DML_EXEC
,PGSQL_DML_ASYNC
ouPGSQL_DML_STRING
combinado. SePGSQL_DML_STRING
fizer parte dosflags
então a string de consulta será retornada. QuandoPGSQL_DML_NO_CONV
ouPGSQL_DML_ESCAPE
está definido, ele não chama pg_convert() internamente. mode
-
Qualquer número de
PGSQL_ASSOC
,PGSQL_NUM
ouPGSQL_BOTH
SePGSQL_ASSOC
for definido o valor de retorno será um array associativo, comPGSQL_NUM
o valor de retorno será um array , e comPGSQL_BOTH
o valor de retorno será um array associativo e indexado numericamente.
Valor Retornado
Retorna string se PGSQL_DML_STRING
for passado
via flags
, caso contrário, retorna um array em caso de sucesso, ou false
em caso de falha.
Registro de Alterações
Versão | Descrição |
---|---|
8.1.0 |
O parâmetro connection agora espera uma instância de PgSql\Connection;
anteriormente, um resource era esperado.
|
7.1.0 |
O parâmetro mode foi adicionado.
|
Exemplos
Example #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