Análise da Questão de PHP/PDO
Esta questão aborda o comportamento do método exec() no contexto da classe PDO (PHP Data Objects), uma ferramenta essencial para conexões seguras com bancos de dados em PHP.
No trecho de código apresentado, a linha $count = $dsn->exec("DELETE FROM Produto WHERE nome = 'caneta'"); realiza uma operação de exclusão direta no banco de dados.
Comportamento do Método exec()
O método PDO::exec() é utilizado para executar instruções SQL que não retornam um conjunto de resultados (como INSERT, UPDATE e DELETE). Diferente do método query(), que retorna um objeto PDOStatement, o exec() retorna diretamente um valor numérico.
- Retorno: Ele retorna o número de linhas afetadas pela instrução SQL.
- Cenário de Sucesso: Se o comando
DELETE encontrar 3 registros com o nome 'caneta' e excluí-los, a variável $count receberá o valor 3. - Cenário de Nenhum Registro: Se nenhum registro corresponder ao critério (
nome = 'caneta'), o número de linhas afetadas será 0.
## Análise das Alternativas
Para identificar a resposta correta, devemos avaliar cada opção com base na documentação oficial do PHP:
- (A) Incorreta. O método não retorna valores booleanos (
true/false) nem strings ("true"). - (B) Incorreta. O método não retorna dados dos registros, apenas a contagem de impacto na tabela.
- (C) Correta. Reflete exatamente a função do comando: informar quantas linhas foram removidas fisicamente da tabela.
- (D) Incorreta. A afirmação de que retorna sempre
1 se o registro foi excluído é falsa; retorna o total de linhas encontradas e apagadas. Além disso, erros geralmente lançam exceções (a menos que o modo de erro esteja definido como ERRMODE_SILENT). - (E) Incorreta. Se o produto não estiver cadastrado, o comando roda sem problemas, mas afeta 0 linhas. O retorno é
0, não false.
Conclusão
A variável $count armazenará a quantidade exata de registros eliminados pela consulta SQL. Portanto, a alternativa que descreve corretamente esse comportamento é a C.