(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::exec — Executa uma instrução SQL e retornar o número de linhas afetadas
$statement
) : intPDO::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().
statement
A instrução SQL para preparar e executar.
Os dados dentro da consulta devem ser adequadamente escapados.
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 booleano false
, mas também pode retornar um valor não-booleano que pode ser
avaliado como false
, como 0
ou
"". Leia a seção em Booleanos para maiores
informações. Utilize 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
?>
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');
/* Delete all rows from the FRUIT table */
$count = $dbh->exec("DELETE FROM fruit");
/* Return number of rows that were deleted */
print("Deleted $count rows.\n");
?>
O exemplo acima irá imprimir:
Deleted 1 rows.