PDO Exception Handling Configuration
Como desenvolvedor, você pode preferir fazer com que as exceções de arremesso de PDO por padrão. Isso elimina a necessidade de definir explicitamente o modo de manuseio de erros sempre que você estabelecer uma conexão de banco de dados. Embora você possa definir manualmente o modo de erro usando $ dbh-> setAttribute (PDO :: Atttr_errmode, PDO :: Errmode_exception), você pode se perguntar se há uma maneira de fazer disso o comportamento padrão. Manipulação de exceção
Infelizmente, não há arquivo de configuração ou opção interno no arquivo php.ini que permita definir PDO para lançar exceções por padrão. Isso ocorre porque o PHP lida com o manuseio de erros globalmente, e não é específico para PDO. &&&] 1. Argumento construtor
Você pode passar uma matriz de opções para o construtor de PDO, incluindo o modo de manuseio de erros:
$ pdo = new PDO ('mySQL: host = localhost; dbname = AlgumAtabase ',' Nome de usuário ',' Senha ', Array ( PDO :: att_errmode = & gt; PDO :: Errmode_Exception ));
2. Wrapper Class
alternativamente, você pode criar uma classe de wrapper que estende o PDO e sempre define o modo de erro no modo de exceção:
classe Mypdo estende PDO { função pública __construct ($ dsn, $ nome de usuário, $ senha) { pai :: __ construto ($ dsn, $ nome de usuário, $ senha, matriz ( PDO :: att_errmode = & gt; PDO :: Errmode_Exception )); } }Com essa abordagem, você pode usar sua classe PDO personalizada em vez da classe PDO regular e sempre obter comportamento de manuseio de exceção:
$pdo = new PDO('mysql:host=localhost;dbname=someDatabase', 'username', 'password', array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));$ PDO = new Mypdo ('mySql: host = lochost; dbName = Somedatabase ',' nome de usuário ',' senha ');
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3