PDO學習筆記

1、PDO簡介

PDO是PHP Data Object的簡稱,用於定義數據庫訪問的抽象層,統一各類數據庫的訪問接口。PDO有以下特性:php

編碼一致性:PDO支持多種數據庫擴展,併爲其提供統一的訪問接口
靈活性:PDO提供了統一的SQL操做方法和屬性
高效性:PDO是用C編寫、PHP編譯的
面向對象:PDO徹底採納面向對象的思想

PDO支持的數據庫:
pdo_thumb.pnghtml

可是,須要注意的是,PDO只是提供了一組數據庫訪問接口,利用PDO自己不能操做任何數據庫。mysql

2、PDO對象

利用PDO的構造函數鏈接特定的數據庫,建立一個PDO對象。在利用PDO以前,須要開啓PDO擴展。以PHP+MySQL爲例,sql

開啓PHP對PDO的擴展:在php.ini中去掉extension=php_pdo.dll的註釋。數據庫

開啓MySQL對PDO的擴展:在my.ini中去掉extension=php_pdo_mysql.dll的註釋。數組

利用phpinfo()能夠查看是否開啓PDO擴展。服務器

一、鏈接數據庫

PDO鏈接數據庫有三種方式:函數

1.1 經過參數形式鏈接(推薦)

$dsn = "mysql:host=localhost;dbname=xxx";
$username = "xxxxx";
$pwd = "xxxx";
$pdo = new PDO($dsn,$username,$pwd);

PDO構造函數還有一個$options參數,它是一個數組,用於配置運行中的數據庫,如是否開啓自動提交、設置結果集的返回方式等。fetch

1.2 經過uri鏈接

首先創建一個文件,保存數據源,文件內容形如:mysql:host=localhost;dbname=xxx。而後在程序中引入該文件。編碼

$dsn = "uri:file://保存數據源配置的文件路徑";
$username = "xxxxx";
$pwd = "xxxx";
$pdo = new PDO($dsn,$username,$pwd);

1.3 經過配置文件鏈接

在php.ini中的任意一個位置添加數據源的配置:

pdo.dsn.test=」mysql:host=localhost;dbname=xxxx」;

test是自定義的數據源名稱。爲方便,能夠在php.ini的首行中添加,而後重啓服務器,在程序中引入該數據源

$dsn = "test";    //數據源名稱
$username = "xxxxx";
$pwd = "xxxx";
$pdo = new PDO($dsn,$username,$pwd);

二、PDO對象的常見方法和屬性

方法或屬性 描述
exec() 執行一條SQL語句,返回受影響的行數。用於增刪改,對查詢返回0
query() 執行一條SQL語句,返回PDOStatement對象,用於保存結果集
prepare() 執行一條SQL語句,返回PDOStatement對象
quote() 返回一個添加引號的字符串,用於SQL語句,可防止SQL注入
lastInsertId 返回最後插入的ID
setAttribute() 設置數據庫鏈接屬性
getAttribute() 獲取數據庫鏈接屬性
errorCode() 獲取跟數據庫句柄上一次操做相關的SQLSTATE
errorInfo() 獲取跟數據庫句柄上一次操做相關的錯誤信息
beginTransaction() 開啓一個事務。須要先關閉自動提交
commit() 提交事務
rollBack() 回滾事務
inTransaction() 檢查操做是否在事務內

3、PDOStatement對象

PDO對象的query()和prepare()方法均會返回一個PDOStatement對象,該對象能夠用於PDO的預處理執行。其常見方法以下:
方法 描述
execute() 執行一條預處理語句
rowCount() 返回上一個SQL語句影響的行數
fetch() 從結果集中獲取一行
fetchAll() 返回一個包含結果中全部行的數組
setFetchMode() 設置默認獲取結果集的模式
fetchObject() 獲取結果集下一行並做爲對象返回
fetchColumn() 獲取結果集下一行的單獨一列
bindParam() 綁定一個參數到指定的變量名
bindValue() 將某個值綁定到指定的參數
bindColumn() 綁定一列到PHP變量
getColumnMeta() 返回結果集中一列的元素據
columnCount() 返回結果中的列數
setAttribute() 設置一個語句屬性
getAttribute() 獲取一個語句屬性
errorCode() 獲取跟數據庫句柄上一次操做相關的SQLSTATE
errorInfo() 獲取跟數據庫句柄上一次操做相關的錯誤信息
debugDumpparams() 打印一條SQL預處理語句
nextRowset() 在一個多行集語句句柄中推動到下一個行集

4、異常模式

PDO支持三種異常模式:

默認模式:PDO::ERRMODE_CLIENT
警告模式:PDO::ERRMODE_WARNING
異常模式:PDO::ERRMODE_EXCEPTION(推薦)

能夠在PDO的構造函數的第四個$options參數或用PDO對象的setAttribute()方法設置。


原文:http://www.ido321.com/1424.html

相關文章
相關標籤/搜索