Bom dia.
Quando eu executo o $statment->execute(); preciso saber se a ação foi bem sucedida no banco ou não? Como obter o resultado da ação?
Parabéns pelas aulas.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Bom dia.
Quando eu executo o $statment->execute(); preciso saber se a ação foi bem sucedida no banco ou não? Como obter o resultado da ação?
Parabéns pelas aulas.
Olá,
O método execute() normalmente retorna true se a consulta foi executada com sucesso e false se ocorreu algum erro.
Além disso, para obter informações mais detalhadas sobre o resultado da ação, especialmente se você estiver executando uma instrução que afeta linhas no banco de dados (como INSERT, UPDATE ou DELETE), você pode usar o método rowCount() para obter o número de linhas afetadas pela ação. Por exemplo:
if ($statement->execute()) {
$rowCount = $statement->rowCount();
echo "Ação bem-sucedida. Número de linhas afetadas: $rowCount";
} else {
$errorInfo = $statement->errorInfo();
echo "Erro: " . $errorInfo[2]; // Mensagem de erro específica do banco de dados
}
O código verifica se a execução foi bem-sucedida usando o if ($statement->execute()). Se for bem-sucedida, ele obtém o número de linhas afetadas usando $statement->rowCount() e exibe essa informação. Caso contrário, se houver um erro, ele usa $statement->errorInfo() para obter detalhes sobre o erro e exibe a mensagem específica do banco de dados.
Lembre-se de que o método errorInfo() retorna um array contendo informações sobre o erro. A mensagem de erro específica geralmente estará na terceira posição do array, ou seja, $errorInfo[2]. Certifique-se de ajustar isso de acordo com o comportamento específico do seu driver de banco de dados.
Oi, Luis! Muito obrigado :)
Você pode fazer como o Davi mencionou ou você pode usar Try-Catch. Dá uma olhada no capítulo desse curso:
https://cursos.alura.com.br/course/php-pdo-banco-de-dados/task/72940
Bons estudos!