"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso fazer com que o PDO jogue exceções por padrão?

Como posso fazer com que o PDO jogue exceções por padrão?

Postado em 2025-02-06
Navegar:202

How Can I Make PDO Throw Exceptions by Default?

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 ');

Tutorial mais recente Mais>

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