PHP造PDO對象和事務功能


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>

<body>

//PDO
//數據訪問抽象層
<?php

//1.操作其它數據庫
//2.事務功能
//3.防止SQL注入攻擊

//造PDO對象
//$dsn = "mysql:dbname=mydb;host=localhost"; //數據源 ("數據庫類型:數據庫名稱=名稱;連接地址=什么什么;")
//$pdo = new PDO($dsn,"root","123"); 數據源,用戶名,密碼

//寫SQL語句
//$sql = "select * from nation";
//$sql = "insert into nation values('n077','數據')";

//執行,返回的是PDOStatement對象
//$a = $pdo->query($sql); //執行查詢
//$a = $pdo->exec($sql); //執行其他語句

//var_dump($a);

//$arr = $attr->fetchAll(PDO::FETCH_BOTH);
//var_dump($arr);


//事務功能
//事務:能夠控制語句同時成功同時失敗,失敗時可以回滾

$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","123");

//設置異常模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 

try
{
    //開啟事務
    $pdo ->beginTransaction(); 
    
    $sql1 = "insert into nation values('n080','是刪')";
    $sql2 = "insert into nation values('n070','好幾款')";
    $sql3 = "insert into nation values('n075','好幾款')";
    
    $pdo->exec($sql1);
    $pdo->exec($sql2);
    $pdo->exec($sql3);
    
    //提交
    $pdo->commit();
}
catch(Exception $e)
{
    //抓住try里面出現的錯誤,並且處理
    //echo $e->getMessage(); //獲取異常信息
    
    //回滾
    $pdo->rollBack();
}
//final()
//{
    //最終執行,無論以上try代碼有沒有出錯,都會執行
//}



?>

</body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM