PHP_PDO簡單操做

  PDO:PHP Data Object,PHP數據對象 是一種純面向對象的操做風格,在新版的PHP中,PHP封裝了一套PDO擴展庫,專門用來操做不一樣類型的數據庫!php

  做用:mysql

  因爲數據庫的差別性,各個數據庫的調用不是徹底相同的,一樣的程序若是使用不一樣的數據庫存放數據時,須要對程序的數據處理部分進行改動,給移植帶來不便。sql

  pdo爲數據庫訪問提供了一致的接口,只需在配置的鏈接參數中,配置不一樣的數據庫驅動就能夠了,而把對數據處理程序的改動下降到最小,甚至不需改動,爲數據的處理及安全性都帶來了很大的方便。數據庫

  使用PDO,須要在php.ini中開啓PDO擴展,在新版本中默認開啓數組

  PDO的實例化安全

  PDO的類結構函數

  

  PDO構造方法:fetch

  

  一共有四個參數:
  $dsn:數據源名稱,告訴系統選擇哪一種類型的數據庫,以及主機名和端口號,選擇默認的數據庫和默認的字符編碼等!
  $username:數據庫的用戶名
  $password:數據庫的密碼
  $driver_options:附加選項,通常能夠用默認編碼

  

  鏈接成功會返回一個PDO對象。spa

  使用PDO實現增刪改操做
  原理:調用PDO類中的 exec() 方法,若是返回受影響行數不爲0(爲真),則成功

     lastInsertID() 方法,返回最後插入記錄的行數

  

  PDO查詢操做
  
query()方法:執行sql語句(通常就是select查詢語句),並返回一個PDOStatement類的對象(同mysql操做裏的結果集)

#實例化PDO類
$pdo = new PDO($dns,$user,$pass);
#sql查詢語句
$sql = '查詢語句';
#調用query()方法,獲得對象賦給$stmt
$stmt = $pdo->query($sql);

  PDOStatement對象

  

# PDOStatement對象 經常使用函數
#獲取查詢結果中的總行數(總記錄數)
rowCount
#獲取查詢結果中的總列數(總字段數)
columnCount
#每次從PDOStatement結果集中獲取一條記錄,同時把指針下移,其中該方法有一個參數
fetch
#返回一個結果集中全部的記錄,造成一個二維數組!能夠用foreach遍歷結果
fetchAll
#每次獲取一列信息中的一條記錄(也就是單一值),並將指針下移!
#該方法有一個參數,用來表明獲取哪一列的信息,第一列爲0,第二列爲1,缺省值爲0,默認爲第一列.
fetchColumn
#做用同 fetch(FETCH_OBJ)
fetchObject

 

  fetch:返回一個結果集,參數有以下幾個

#相似mysql_fetch_assoc函數,返回一個關聯類型的數組
PDO::FETCH_ASSOC
#相似之前的mysql_fetch_row函數,返回一個索引數組
PDO::FETCH_NUM
#相似mysql_fetch_array,返回一個關聯和索引並存的數組,爲默認值
PDO::FETCH_BOTH #返回一個對象,其中對象的屬性就是字段的值 PDO::FETCH_OBJ

  使用語法:

#實例化PDO類
$pdo = new PDO($dns,$user,$pass);
#sql查詢語句
$sql = '查詢語句';
#調用query()方法,獲得對象賦給$stmt
$stmt = $pdo->query($sql);
#分別使用fetch第四個參數獲取結果
$stmt ->fetch(PDO::FETCH_ASSOC);
$stmt ->fetch(PDO::FETCH_NUM);
$stmt ->fetch(PDO::FETCH_BOTH);
$stmt ->fetch(PDO::FETCH_OBJ);

  以上獲取的結果每次從結果集中獲取到一條數據,能夠用while循環便利出來

#設置一個空數組
$rows = array();
# mysql_fetch_assoc 每次獲取一條記錄,將結果放到 $row 中
while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ){
    #用while循環將每次獲得的結果放入數組元素
    $rows[] = $row;
}
var_dump($rows);

    PDO的相關屬性

  PDO的屬性都是私有的或者受保護的,外部不能直接修改,可是PDO對象提供了兩個操做屬性的接口:

PDO::getAttribute     // 取回一個數據庫鏈接的屬性
PDO::setAttribute    // 設置屬性

  設置屬性方面只要一下幾個:

PDO::ATTR_AUTOCOMMIT:自動提交 可選值有兩個:
0或者1。0表明不開啓自動提交,手動使用commit方法;1表明開啓自動提交,也是默認值 PDO
::ATTR_CASE:返回結果集字段名大小寫(重要) 可選值一共有三個: PDO::CASE_LOWER:返回的結果集所有爲小寫 PDO::CASE_UPPER:返回的結果集所有爲大寫 PDO::CASE_NATURAL:返回的結果集爲正常(原來是什麼樣返回的仍是什麼樣,也是默認值) PDO::ATTR_ERRMODE:返回的錯誤模式(重要) 可選值有三個: PDO::ERRMODE_SILENT:靜默模式,也是默認值(出錯無任何提示) PDO::ERRMODE_WARNING:警告模式 PDO::ERRMODE_EXCEPTION:異常模式

  使用語法舉例:

#實例化PDO類
$pdo = new PDO($dns,$user,$pass);
#設置屬性,將異常模式設置爲警告模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sql = '一條錯誤的sql語句';
$stmt = $pdo->query($sql);
相關文章
相關標籤/搜索