PDO又稱爲數據訪問抽象層,它有三個功能:php
1.php中訪問其餘數據庫;mysql
2.事務功能;sql
3.防止SQL注入攻擊。數據庫
用法:服務器
1.造對象:fetch
造數據源:$dsn = "mysql(數據庫名稱):dbname=mydb(訪問的數據庫名稱);host=localhost(訪問的地址)"; ;spa
$pdo = new PDO($dsn,"root","123");;code
2.寫SQL語句:對象
$sql = "查詢語句";;blog
3.調用
$stm = $pdo->query($sql);
$arr = $stm->fetchAll();。
防止SQL注入攻擊:
$dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); //$sql = "insert into nation values(?,?)"; //將SQL語句放到服務器等待執行 //$stm = $pdo->prepare($sql); //將參數傳遞到服務器開始執行 //$arr = array("n016","不死族"); //$stm->execute($arr); $sql = "insert into nation values(:code,:name)"; $stm = $pdo->prepare($sql); $arr = array("code"=>"n017","name"=>"精靈族"); $stm->execute($arr);
事物功能:
事物:操做數據庫的每個步驟,使其綁在一塊兒,同時成功或同時失敗的結果。
$dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); //設置PDO的異常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //如何捕獲異常 try{ //你要執行的代碼 //開啓事務功能 $pdo->beginTransaction(); $sql = "insert into nation values('n018','人族')"; $sql1 = "insert into nation values('n019','回族')"; $pdo->query($sql); $pdo->query($sql1); //提交事務執行 $pdo->commit(); }catch(Exception $e){ //echo $e->getMessage(); //回滾 $pdo->rollBack(); }