pg_update
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_update — Atualiza tabela
Descrição
PgSql\Connection
$connection
,string
$table_name
,array
$values
,array
$conditions
,int
$flags
= PGSQL_DML_EXEC
): string|bool
pg_update() atualiza registros que correspondem a
conditions
com values
.
Se flags
for especificado,
pg_convert() será aplicado aos
values
com as opções especificadas.
Por padrão, pg_update() passa valores brutos.
Os valores devem ser escapados ou a opção PGSQL_DML_ESCAPE
deve ser especificado em flags
.
PGSQL_DML_ESCAPE
cita e escapa parâmetros/identificadores.
Portanto, os nomes de tabelas/colunas diferenciam maiúsculas de minúsculas.
Observe que nem o escape nem a consulta preparada podem proteger consultas LIKE, JSON, Array, Regex, etc. ou seja, escapar/validar valores.
Parâmetros
connection
-
Uma instância de PgSql\Connection.
table_name
-
Nome da tabela na qual as linhas serão atualizadas.
values
-
Um array cujas chaves são nomes de campos na tabela
table_name
e cujos valores são os valores para os quais as linhas correspondentes devem ser atualizadas. 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 atualizada. 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.
Valor Retornado
Retorna true
em caso de sucesso ou false
em caso de falha. Retorna string se PGSQL_DML_STRING
for passado
através de flags
.
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.
|
Exemplos
Example #1 Exemplo de pg_update()
<?php
$db = pg_connect('dbname=foo');
$data = array('field1'=>'AA', 'field2'=>'BB');
// 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.
$res = pg_update($db, 'post_log', $_POST, $data);
if ($res) {
echo "Dados foram atualizados: $res\n";
} else {
echo "Usuário deve ter enviado dados errados\n";
}
?>
Veja Também
- pg_convert() - Converte valores de array associativo em formas adequadas para instruções SQL