How does PDO handle exceptions? The content of this article is to introduce three ways of handling errors in PDO. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
PDO provides three ways to handle errors
PDO::ERRMODE_SILENT: silent mode (default)
PDO::ERRMODE_WARNING: warning mode
PDO::ERRMODE_EXC EPTION:Exception Pattern
Example:
<?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/>"; }
Note: Exception handling in PDO does not require instantiating the exception class and throwing exceptions, because we have modified PDO to exception mode in step 5:
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
Running results : Normal display with no abnormalities!
Write the monitoring code block deliberately wrong to see if an exception is thrown and whether the exception thrown is what we want!
//监听 $sql = "select * from pdo111"; //把 pdo 错改成 pdo111
Result:
throws an exception message, indicating that the exception handling is successful!
Summary: The above is the entire content of this article. I hope it can be helpful to everyone’s learning. More related video recommendations: php tutorial!