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

墨辰丷
墨辰丷original
2018-05-30 16:13:351711parcourir

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());
}

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

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();
}

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!

Déclaration:
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