Executa uma instrução SQL e retorna o número de linhas afetadas

# PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::exec — Executa uma instrução SQL e retorna o número de linhas afetadas

### Descrição

public function PDO::exec(string `$statement`): int|false

PDO::exec() executa uma instrução SQL em uma única chamada de função, retornando o número de linhas afetadas pela instrução.

PDO::exec() não retorna resultados de uma instrução SELECT. Para uma instrução SELECT que você só precisa emitir uma vez durante seu programa, considere a emissão de PDO::query(). Para uma instrução que você precisa emitir várias vezes, prepare um objeto PDOStatement com PDO::prepare() e emita a instrução com PDOStatement::execute().

### Parâmetros

`statement`

  A instrução SQL para preparar e executar.

  Os dados dentro da consulta devem ser adequadamente escapados.

### Valor Retornado

PDO::exec() retorna o número de linhas que foram modificadas ou excluídas pela instrução SQL que você emitiu. Se nenhuma linha for afetada, PDO::exec() retorna `0`.

Aviso

Esta função pode retornar o valor booleano `false`, mas também pode retornar um valor não booleano que pode ser avaliado como `false`. Leia a seção sobre Booleanos para mais informações. Use o operador === para testar o valor retornado por esta função.

O exemplo a seguir depende incorretamente do valor de retorno de PDO::exec(), em que uma instrução que afetou 0 linhas resulta em uma chamada para die():

    <?php
    $db->exec() or die(print_r($db->errorInfo(), true)); // incorreto
    ?>

### Erros/Exceções

Emite um erro de nível `E_WARNING` se o atributo `PDO::ATTR_ERRMODE` estiver definido como `PDO::ERRMODE_WARNING`.

Lança uma exceção PDOException se o atributo `PDO::ATTR_ERRMODE` estiver definido como `PDO::ERRMODE_EXCEPTION`.

### Exemplos

Exemplo #1 Emitindo uma instrução DELETE

Conte o número de linhas excluídas por uma instrução DELETE sem cláusula WHERE.

    <?php
    $dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

    /* Apaga todas as linhas da tabela FRUIT */
    $count = $dbh->exec("DELETE FROM fruit");

    /* Retorna o número de linhas apagadas */
    print "Apagada(s) $count linha(s).\n";
    ?>

O exemplo acima produzirá:

    Apagada(s) 1 linha(s).

### Veja Também

- PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
- PDO::query() - Prepara e executa uma instrução SQL sem marcadores
- PDOStatement::execute() - Executa ums instrução preparada

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