PDOStatement::rowCount
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::rowCount — Retorna o número de registros afetados pela última instrução SQL
Descrição
PDOStatement::rowCount() eetorna o número de
registros afetados pela última instrução DELETE, INSERT ou UPDATE
executada pelo objeto PDOStatement
correspondente.
Para instruções que produzem conjuntos de resultados, como SELECT
,
o comportamento é indefinido e pode ser diferente para cada driver.
Alguns bancos de dados podem retornar o número de registros produzidos por essa instrução
(por exemplo, MySQL em modo buffer), mas este
comportamento não é garantido para todos os bancos de dados e não deve ser uma fonte confiável
para aplicações portáveis.
Note:
Este método retorna "0" (zero) com o driver SQLite em todos os momentos, e com o driver PostgreSQL apenas quando o atributo de instrução
PDO::ATTR_CURSOR
estiver configurado paraPDO::CURSOR_SCROLL
.
Parâmetros
Esta função não possui parâmetros.
Valor Retornado
Retorna o número de registros.
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 Retorna o número de registros apagados
PDOStatement::rowCount() retorna o número de registros afetados pelas instruções DELETE, INSERT ou UPDATE.
<?php
/* Apaga todos os registros da tabela FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();
/* Retorna o número de registros apagados */
print "Número retornado de registros apagados:\n";
$count = $del->rowCount();
print "$count registros apagados.\n";
?>
O exemplo acima produzirá algo semelhante a:
Número retornado de registros apagados: 9 registros apagados.
Example #2 Contando registros retornados por uma instrução SELECT
Para a maioria dos bancos de dados, o método PDOStatement::rowCount() não retorna o número de registros afetados por uma instrução SELECT. Ao invés dele, o método PDO::query() deve ser usado para emitir uma instrução SELECT COUNT(*) com os mesmos predicados da instrução SELECT requerida, e então PDOStatement::fetchColumn() deve ser usado para recuperar o número de registros correspondentes.
<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();
print "Há " . $count . " registros correspondentes.";
O exemplo acima produzirá algo semelhante a:
Há 2 registros correspondentes.
Veja Também
- PDOStatement::columnCount() - Retorna o número de colunas no conjunto de resultados
- PDOStatement::fetchColumn() - Retorna uma única coluna do próximo registro de um resultado
- PDO::query() - Prepara e executa uma instrução SQL sem marcadores