PDO 徹底使用教程

一.PDO異常處理

PDO::ATTR_ERRMODE

    1. PDO::ATTR_ERRMODE//不報錯誤(忽略)(0)
    1. PDO::ERRMODE_WARNING //以警告的方式報錯(1)
    1. PDO::ERRMODE_EXCEPTION //以異常的方式報錯(2)
<?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
    // 設置以異常的方式返回錯誤
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die('數據庫鏈接失敗' . $e->getMessage());
}

二.PDO預處理方法

    1. prepare() //用於執行查詢SQL語句,返回PDOStatement對象
    1. bindValue() //將值綁定到對應的一個參數,返回布爾值
    1. bindParam() //將參數綁定到相應的查詢佔位符上,返回布爾值
    1. bindColumn() //用來匹配列名和一個指定的變量名
    1. execute() // 執行一個準備好了的預處理語句,返回布爾值
    1. rowCount() // 回使用增、刪、改、查操做語句後受影響的行總數
$sql="INSERT INTO users(id,name,age) VALUES(?,?,?)";  
$stmt=$pdo->prepare($sql);  
  
//3.對?號的參數進行綁定  
$id=null;  
$name="test103";  
$age=103;  
  
//第一種綁定方式  
//$stmt->bindValue(1,$id);  
//$stmt->bindValue(2,$name);  
//$stmt->bindValue(3,$age);  
  
//第二種綁定方式  
//$stmt->bindParam(1,$id);  
//$stmt->bindParam(2,$name);  
//$stmt->bindParam(3,$age);  
  
//4.執行  
//$stmt->execute();  
//第三種綁定方式:直接執行數組  
$stmt->execute(array($id,$name,$age));  
echo $stmt->rowCount();  

//2.預處理的SQL語句  
$sql="INSERT INTO users(id,name,age) VALUES(:id,:name,:age)";  
$stmt=$pdo->prepare($sql);  
  
//3.參數進行綁定  
$id=null;  
$name="test203";  
$age=23;  
  
//第一種綁定方式  
//$stmt->bindValue("id",$id);  
//$stmt->bindValue("name",$name);  
//$stmt->bindValue("age",$age);  
  
//第二種綁定方式  
//$stmt->bindParam("id",$id);  
//$stmt->bindParam("name",$name);  
//$stmt->bindParam("age",$age);  
  
//4.執行  
//$stmt->execute();  
//第三種綁定方式:直接執行數組  
$stmt->execute(array("id"=>$id,"name"=>$name,"age"=>$age));  
echo $stmt->rowCount();  


//2.預處理查詢  
$sql="SELECT id,name,age FROM users";  
$stmt=$pdo->prepare($sql);  
//3.執行  
$stmt->execute();  
foreach($stmt as $val){  
    echo $val['id']."------".$val['name']."------".$val['age']."<br/>";  
}

三.事務處理操做方法介紹

    1. beginTransaction() //開啓一個事物(作一個回滾點)
    1. commit() //提交事務
    1. rollBack() //事務回滾操做
//2.執行數據操做  
try{  
    //開啓事物  
    $pdo->beginTransaction();  
    $sql="insert into users(id,name,age) VALUES(?,?,?)";  
    $stmt=$pdo->prepare($sql);  
    //傳入參數  
    $stmt->execute(array(null,"test1","21"));  
    $stmt->execute(array(null,"test2","22"));  
    $stmt->execute(array(null,"test3","23"));  
    //提交事物  
    $pdo->commit();  
}catch (PDOException $e){  
    die("fail to execute".$e->getMessage());  
    //事物回滾  
    $pdo->roolback();  
}
相關文章
相關標籤/搜索