Wie geht PDO mit Ausnahmen um? Der Inhalt dieses Artikels besteht darin, drei Möglichkeiten zum Umgang mit Fehlern in PDO vorzustellen. Er hat einen gewissen Referenzwert. Ich hoffe, er wird für Sie hilfreich sein.
PDO bietet drei Möglichkeiten zur Fehlerbehandlung
PDO::ERRMODE_SILENT: Silent-Modus (Standard)
PDO::ERRMODE_WARNING: Warnmodus
PDO::ERRMODE_EXCEPTION: Ausnahmemodus
Beispiel:
<?php /** * 利用PDO对象实现异常处理操作 */ echo "<meta charset=utf-8>"; //PDO类的实例化 // 1 设置数据源相关参数 $dbms = 'mysql'; //选择数据库类型 $host = 'localhost'; $port = '3306'; $dbname = 'test'; $charset = 'utf8'; $dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset"; // 2 设置用户名密码 $user = 'root'; $pwd = ''; // 3 实例化PDO类 $pdo = new PDO($dsn,$user,$pwd); // 4 设置PDO相关属性 $pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER); // 5 修改PDO为异常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); try{ //监听 $sql = "select * from pdo"; $stmt = $pdo->query($sql); }catch(PDOException $e){ //捕获异常 echo "错误信息为:".$e->getmessage()."<br/>"; echo "错误代码为:".$e->getCode()."<br/>"; echo "错误文件为:".$e->getFile()."<br/>"; echo "错误行号为:".$e->getLine()."<br/>"; }
Hinweis: Für die Ausnahmebehandlung in PDO ist es nicht erforderlich, eine Ausnahmeklasse zu instanziieren und eine Ausnahme auszulösen, da wir PDO in Schritt 5 in den Ausnahmemodus geändert haben:
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
Betriebsergebnisse: Normale Anzeige ohne Auffälligkeiten!
Schreiben Sie den Überwachungscodeblock absichtlich falsch, um zu sehen, ob eine Ausnahme ausgelöst wird und ob die ausgelöste Ausnahme das ist, was wir wollen!
//监听 $sql = "select * from pdo111"; //把 pdo 错改成 pdo111
Ergebnis:
Ausnahmeinformationen werden ausgegeben, was darauf hinweist, dass die Ausnahmebehandlung erfolgreich war!
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich sein wird: php-Tutorial!