kaedah tetapan pengendalian ralat pdo: 1. Tetapkan "PDO::ERRMODE_SILENT", dan kemudian dapatkan maklumat ralat dalam bentuk "$pdo->errorInfo()"; :ERRMODE_WARNING" , semak ralat "E_WARNING"; 3. Tetapkan "PDO::ERRMODE_EXCEPTION", dan kemudian keluarkan mesej ralat dengan "try{}cath(){}".
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Penjelasan terperinci tentang pengendalian pengecualian php PDO
Pengendalian pengecualian:
PHP: Lalai adalah melaporkan ralat secara langsung
MYSQL: Lalai Ia berada dalam mod senyap. Jika ralat berlaku, ia akan menjadi salah dan tiada ralat akan dilaporkan salah dan tiada ralat akan dilaporkan.
Pada masa lalu, apabila PHP mengalami ralat, ia akan secara langsung melaporkan ralat. Kemudian, apabila ralat berlaku, maklumat ralat tidak lagi akan dikeluarkan secara langsung dan akan diletakkan dalam objek kelas (PDOException)
tetapan pengendalian pengecualian pdo:
Tetapkan PDO::ATTR_ERRMODE, dengan Tiga nilai berikut:
PDO::ERRMODE_SILENT: Mod lalai tidak melaporkan ralat secara aktif Anda perlu secara aktif mendapatkan maklumat ralat dalam bentuk $pdo->errorInfo().
PDO::ERRMODE_WARNING: Naikkan ralat E_WARNING dan laporkan ralat secara proaktif
PDO::ERRMODE_EXCEPTION: Buang pengecualian secara proaktif dan anda perlu menggunakan try{}cath(){} untuk mengeluarkan ralat maklumat.
Contoh:Kaedah satu:
Kaedah kedua:<?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,'jike','w',55)"; $res = $pdo->exec($sql); if($res){ echo "OK"; }else{ echo $pdo->errorCode(); print_r($pdo->errorInfo()); }
<?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,'jike','w',55)"; //若有错误直接在浏览器页面中显示错误信息 $res = $pdo->exec($sql);
<?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,'jike','w',55)"; //用try{}catch(){}抓取异常 try{ $res = $pdo->exec($sql); }catch(PDOException $e){ echo $e->getMessage(); }
Atas ialah kandungan terperinci Bagaimana untuk menyediakan pengendalian ralat pdo php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!