1. 程式人生 > >PHP中關於PDO數據訪問抽象層的功能操作

PHP中關於PDO數據訪問抽象層的功能操作

val nal 沒有 密碼 處理 結果 增刪 -1 之前

PDO:數據訪問抽象層

具有三大特點:

1.可以訪問其它數據庫 所有數據庫都可以

2.具有事務功能

3.帶有預處理語句功能(防止SQL註入攻擊)

實例操作代碼如下:

<?php

//1.造PDO對象
$dsn ="mysql:dbname=mydb;host=localhost";//數據庫類型:dbname=數據庫名稱;host=鏈接的ip或本機
$pdo =new PDO($dsn,"root","root");//$dsn,帳號,密碼

//2.寫SQL語句
$sql ="select * from info";
$sql ="insert into info values(‘004‘,‘王六‘,‘男‘,‘n007‘,‘1994-02-11‘)";

//3.執行SQL語句
$stm = $pdo->query($sql); //查詢語句用query,返回的是結果
$arr = $pdo->exec($sql);//增刪改用exec,返回的是執行的行數

//4.從PDOStatement對象裏面讀數據
$arr =$stm->fetch(PDO::FETCH_NUM);//默認不選為PDO::FETCH_BOTH fetch為選擇一條數據
$arr = $stm->fetchAll(PDO::FETCH_BOTH);//fetchAll為全選

//事務類型:即要不全部都通過,要不全部失敗,可以參考淘寶購物,必須同時滿足扣款,減去庫存和添加訂單三項條件,缺一不可
//beginTransation 啟動事務
//commit 提交事務
//rollback 回滾:返回到啟動事務之前


//1.造PDO對象
$dsn ="mysql:dbname=mydb;host=localhost";
$pdo =new PDO($dsn,"root","root");

//2.將PDO的錯誤類型設置為異常模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

try //嘗試運行,包含從開啟事務到提交事務
{
//開啟事務
$pdo->beginTransaction();
$sql1 = "insert into info values(‘004‘,‘進口‘,‘男‘,‘n008‘,‘1994-05-11‘)";
$sql2 = "insert into info values(‘005‘,‘審核‘,‘男‘,‘n009‘,‘1994-07-11‘)";
$sql3 = "insert into info values(‘006‘,‘姐我‘,‘男‘,‘n0010‘,‘1994-08-11‘)";

$pdo->exec($sql1);
$pdo->exec($sql2);
$pdo->exec($sql3);

//提交事務
$pdo->commit();
}
catch(Exception $e)
{
//回滾操作
$pdo->rollBack();

}
//強類型語言中使用


final
{
//最終執行,無論有沒有異常出現,該代碼都會執行
}
?>

PHP中關於PDO數據訪問抽象層的功能操作