php pdo error handling setting method: 1. Set "PDO::ERRMODE_SILENT", and then obtain the error information in the form of "$pdo->errorInfo()"; 2. Set "PDO::ERRMODE_WARNING" , check the "E_WARNING" error; 3. Set "PDO::ERRMODE_EXCEPTION", and then output the error message with "try{}cath(){}".
The operating environment of this tutorial: Windows 7 system, PHP version 8.1, Dell G3 computer.
php PDO exception handling details
Exception handling:
PHP: The default is to report errors directly
MYSQL: Default It is the silent mode. If an error occurs, it will be an error. No error will be reported.
PDO: The default is silent mode. If an error occurs, the error will be reported. No error will be reported.
In the past, when PHP encountered an error, it would directly report an error. It can become quite cumbersome to deal with. Later, when an error occurs, the error message will no longer be output directly and will be placed in a class object (PDOException)
pdo exception handling settings:
Set PDO::ATTR_ERRMODE, there are The following three values:
PDO::ERRMODE_SILENT: The default mode does not actively report errors. You need to actively obtain error information in the form of $pdo->errorInfo().
PDO::ERRMODE_WARNING: Raise an E_WARNING error and actively report errors
PDO::ERRMODE_EXCEPTION: Actively throw exceptions and need to output error information with try{}cath(){}.
Example:
Method one:
<?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()); }
Method two:
<?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);
Method three:
<?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(); }
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to set up php pdo error handling. For more information, please follow other related articles on the PHP Chinese website!