Como ativar a exibição dos erros no PDO
Por padrão, PDO não exibe os diversos erros ligados ao código ou às pesquisas. Para fazê-los aparecer, é preciso ativar a opção durante a inicialização:setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Como este:
try{ $bdd =new PDO('mysql:host=localhost; dbname=mabdd; charset=utf8', 'user', 'password'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Erro: ' . $e->getMessage()); }
Observação: pense também em ativar a exibição dos erros PHP, habilitando a opção no php.iniou colocando, no início dos seus scripts PHP a linha do seguinte código:
error_reporting(E_ALL);
Relatório de erro
Como detectar os erros nas pesquisas
Para detectar os erros de código ou de pesquisas você pode usar blocos TRY/CATCH. Por exemplo://preparação da pesquisa e das variáveis $sql = "INSERT INTO matable (campo1,campo2) VALUES (:valor1,:outrovalor)"; $datas = array(':valor1'=>$valor1, ':outrovalor'=>$joão); //Execução da pesquisa try{ $pesquisa = $bdd -> prepare($sql) ; $pesquisa ->execute($datas) ; }catch(Exception $e){ // em caso de erro: eco " Erro ! ".$e->getMessage(); eco " As datas : " ; print_r($datas); }
Observação: o fato de separar a pesquisa (o conteúdo da variável $sql) de sua execução (o ‘prepare’ e o ‘execute’) permite fazer um eco em caso de necessidade. O mesmo vale para as variáveis (conteúdos em $datas).
Erro relacionado com um problema na pesquisa
Este é um outro assunto...mas já posso adiantar que é imperativo testar suas pesquisas DIRETAMENTE em seu BDD (passando, por exemplo, pelo phpmyadmin, se você estiver em mysql ou por um software como o HeidiSql). Isso permitirá que você saiba exatamente onde está o erro: um nome de campo ou tabela com erros ortográficos, um espaço esquecido, citações faltando, etc.Foto: © Pixabay.Fonte: http://br.ccm.net/faq/
0 comentários:
Os comentários serão moderados antes de publicar! respondo todos, obrigado por comentar.