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
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
.
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)); // incorrect
?>
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
Example #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