Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der PHP-PDO-Ausnahmebehandlung

Detaillierte Erläuterung der PHP-PDO-Ausnahmebehandlung

高洛峰
Freigeben: 2023-03-03 13:22:01
Original
1597 Leute haben es durchsucht

Ausnahmebehandlung:

PHP: Standardmäßig werden Fehler direkt gemeldet

MYSQL: Standardmäßig ist der Silent-Modus, wenn ein Fehler auftritt, wird kein Fehler gemeldet

PDO: Der Standardwert ist der stille Modus. Wenn Sie einen Fehler machen, machen Sie einen Fehler. Melden Sie keinen Fehler.

Wenn PHP in der Vergangenheit auf einen Fehler stieß, wurde ein Fehler direkt gemeldet Die Fehlerbehandlung würde ziemlich mühsam werden. Wenn später ein Fehler auftritt, werden die Fehlerinformationen nicht mehr direkt ausgegeben und in einem Klassenobjekt (PDOException) abgelegt.

PDO-Ausnahmebehandlungseinstellungen:

Set PDO::ATTR_ERRMODE, mit den folgenden drei Werten:

PDO::ERRMODE_SILENT: Der Standardmodus meldet Fehler nicht aktiv. Sie müssen aktiv Fehlerinformationen in Form von $pdo->errorInfo() abrufen.

PDO::ERRMODE_WARNING: Einen E_WARNING-Fehler auslösen und Fehler proaktiv melden

PDO::ERRMODE_EXCEPTION: Ausnahmen proaktiv auslösen, und Sie müssen try{}cath(){} verwenden, um den Fehler auszugeben Information.

Beispiel:

Methode eins:

<?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());
}
Nach dem Login kopieren

Methode zwei:

<?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);
Nach dem Login kopieren

Methode 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();
}
Nach dem Login kopieren


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage