(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_delete — Exclui registros
$connection
,$table_name
,$conditions
,$flags
= PGSQL_DML_EXEC
pg_delete() exclui registros de uma tabela
especificada pelas chaves e valores em conditions
.
Se flags
for especificado,
pg_convert() será aplicado às
conditions
com as opções especificadas.
Por padrão, pg_delete() 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. Esses parâmetros devem ser tratados de acordo com seus contextos. ou seja, escapar/validar valores.
connection
Uma instância de PgSql\Connection.
table_name
Nome da tabela da qual as linhas serão excluídas.
conditions
Um array cujas chaves são nomes de campos na tabela table_name
e cujos valores são os valores dos campos que devem ser excluídos.
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 de
flags
então a string de consulta é retornada. Quando PGSQL_DML_NO_CONV
ou PGSQL_DML_ESCAPE
está definido, ele não chama pg_convert() internamente.
Retorna true
em caso de sucesso ou false
em caso de falha. Retorna string se PGSQL_DML_STRING
for passado
através de flags
.
Versão | Descrição |
---|---|
8.1.0 |
O parâmetro connection agora espera uma instância de PgSql\Connection;
anteriormente, um resource era esperado.
|
Exemplo #1 Exemplo de pg_delete()
<?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. Eles não são
// seguros nem por escape nem por consulta preparada.
$res = pg_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($res) {
echo "Dados POST foram excluídos: $res\n";
} else {
echo "O usuário deve ter enviado entradas erradas\n";
}
?>