Exclui registros

# pg_delete

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_delete — Exclui registros

### Descrição

function pg_delete(
PgSql\Connection `$connection`,
string `$table_name`,
array `$conditions`,
int `$flags` = `PGSQL_DML_EXEC`
): string|bool

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.

### Parâmetros

`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.

### 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

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";
      }
    ?>

### Veja Também

- pg_convert() - Converte valores de array associativo em formas adequadas para instruções SQL

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open