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.
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!