Maison > développement back-end > tutoriel php > Explication détaillée de la méthode de gestion des exceptions php PDO

Explication détaillée de la méthode de gestion des exceptions php PDO

墨辰丷
Libérer: 2023-03-28 14:14:01
original
1707 Les gens l'ont consulté

Cet article vous présente principalement le contenu pertinent de la gestion des exceptions PDO en php. L'article vous donne d'abord une brève introduction, puis vous présente comment l'utiliser à travers un exemple de code. L'introduction est très détaillée, amis dans le besoin, nous pouvons. s'y référer. Les amis intéressés peuvent venir apprendre ensemble.

Gestion des exceptions :

PHP : la valeur par défaut est de signaler directement les erreurs

MYSQL : la valeur par défaut est le mode silencieux, si vous faites une erreur, vous vous trompez. Aucun rapport d'erreur

PDO : la valeur par défaut est le mode silencieux, les erreurs sont des erreurs, aucune erreur n'est signalée

Dans le passé, lorsque PHP rencontrait une erreur. , il signalerait directement une erreur et la gestion des erreurs deviendrait assez gênante. Plus tard, lorsqu'une erreur se produit, les informations d'erreur ne seront plus affichées directement et seront placées dans un objet de classe (PDOException)

Paramètres de gestion des exceptions pdo :

Définissez PDO::ATTR_ERRMODE, qui a les trois valeurs suivantes :

PDO::ERRMODE_SILENT : mode par défaut, ne signale pas activement les erreurs, doit utiliser activement $ pdo->errorInfo () pour obtenir des informations sur l'erreur.

PDO::ERRMODE_WARNING : générer une erreur E_WARNING et signaler les erreurs de manière proactive

PDO::ERRMODE_EXCEPTION : lancer des exceptions de manière proactive et vous devez utiliser try{}cath(){} pour générer une erreur information.

Exemple :

Méthode 1 :

<?php
//默认是不提示的 需要用 errorCode() errorInfo();
try{
  $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root","");
  //下面这句是默认设置,有无均可
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_SILENT);
}catch(PDOException $e){
  die("数据库连接失败".$e->getMessage());
}
$sql = "insert into stuu values(null,&#39;jike&#39;,&#39;w&#39;,55)";
$res = $pdo->exec($sql);
if($res){
  echo "OK";
}else{
  echo $pdo->errorCode();
  print_r($pdo->errorInfo());
}
Copier après la connexion

Méthode 2 :

<?php
try{
  $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root","");
  //主动以警告的形式报错
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
}catch(PDOException $e){
  die("数据库连接失败".$e->getMessage());
}
$sql = "insert into stuu values(null,&#39;jike&#39;,&#39;w&#39;,55)";
//若有错误直接在浏览器页面中显示错误信息
$res = $pdo->exec($sql);
Copier après la connexion

Méthode 3 :

<?php
try{
  $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root","");
  //主动抛出异常
  $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION );
}catch(PDOException $e){
  die("数据库连接失败".$e->getMessage());
}
$sql = "insert into stuu values(null,&#39;jike&#39;,&#39;w&#39;,55)";
//用try{}catch(){}抓取异常
try{
  $res = $pdo->exec($sql);
}catch(PDOException $e){
  echo $e->getMessage();
}
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

Explication détaillée de la façon d'interroger l'emplacement d'un téléphone mobile avec PHP

Explication graphique détaillée des solutions courantes pour remarquer les erreurs en PHP

PHP implémente la conversion entre le code ASCII et la chaîne

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal