PDO是高版本php中的一個(gè)mysql數(shù)據(jù)庫操作功能了,我們下面就一起來看看關(guān)于php中PDO的一些學(xué)習(xí)筆記,有興趣了解PDO的朋友可一起來看看哦.
一、PDO簡介
PDO是PHP Data Object的簡稱,用于定義數(shù)據(jù)庫訪問的抽象層,統(tǒng)一各種數(shù)據(jù)庫的訪問接口,PDO有如下特性:
編碼一致性:PDO支持多種數(shù)據(jù)庫擴(kuò)展,并為其提供統(tǒng)一的訪問接口
靈活性:PDO提供了統(tǒng)一的SQL操作方法和屬性
高效性:PDO是用C編寫、PHP編譯的
面向?qū)ο?PDO完全采納面向?qū)ο蟮乃枷?/p>
pdo支持的數(shù)據(jù)庫
但是,需要注意的是,PDO只是提供了一組數(shù)據(jù)庫訪問接口,利用PDO本身不能操作任何數(shù)據(jù)庫.
二、PDO對象
利用PDO的構(gòu)造函數(shù)連接特定的數(shù)據(jù)庫,創(chuàng)建一個(gè)PDO對象,在利用PDO之前,需要開啟PDO擴(kuò)展,以PHP+MySQL為例.
開啟PHP對PDO的擴(kuò)展:在php.ini中去掉extension=php_pdo.dll的注釋。
利用phpinfo()可以查看是否開啟PDO擴(kuò)展.
1、連接數(shù)據(jù)庫
PDO連接數(shù)據(jù)庫有三種方式:
1.1 通過參數(shù)形式連接(推薦)
- $dsn = "mysql:host=localhost;dbname=xxx";
- $username = "xxxxx";
- $pwd = "xxxx";
- $pdo = new PDO($dsn,$username,$pwd);
PDO構(gòu)造函數(shù)還有一個(gè)$options參數(shù),它是一個(gè)數(shù)組,用于配置運(yùn)行中的數(shù)據(jù)庫,如是否開啟自動(dòng)提交、設(shè)置結(jié)果集的返回方式等.
1.2 通過uri連接
首先建立一個(gè)文件,保存數(shù)據(jù)源,文件內(nèi)容形如:mysql:host=localhost;dbname=xxx.然后在程序中引入該文件.
- $dsn = "uri:file://保存數(shù)據(jù)源配置的文件路徑";
- $username = "xxxxx";
- $pwd = "xxxx"; //開源軟件:Vevb.com
- $pdo = new PDO($dsn,$username,$pwd);
1.3 通過配置文件連接
在php.ini中的任意一個(gè)位置添加數(shù)據(jù)源的配置:
pdo.dsn.test=”mysql:host=localhost;dbname=xxxx”;
test是自定義的數(shù)據(jù)源名稱,為方便,可以在php.ini的首行中添加,然后重啟服務(wù)器,在程序中引入該數(shù)據(jù)源.
- $dsn = "test"; //數(shù)據(jù)源名稱
- $username = "xxxxx";
- $pwd = "xxxx";
- $pdo = new PDO($dsn,$username,$pwd);
2、PDO對象的常見方法和屬性
方法或?qū)傩?描述
exec() 執(zhí)行一條SQL語句,返回受影響的行數(shù)。用于增刪改,對查詢返回0
query() 執(zhí)行一條SQL語句,返回PDOStatement對象,用于保存結(jié)果集
prepare() 執(zhí)行一條SQL語句,返回PDOStatement對象
quote() 返回一個(gè)添加引號的字符串,用于SQL語句,可防止SQL注入
lastInsertId 返回最后插入的ID
setAttribute() 設(shè)置數(shù)據(jù)庫連接屬性
getAttribute() 獲取數(shù)據(jù)庫連接屬性
errorCode() 獲取跟數(shù)據(jù)庫句柄上一次操作相關(guān)的SQLSTATE
errorInfo() 獲取跟數(shù)據(jù)庫句柄上一次操作相關(guān)的錯(cuò)誤信息
beginTransaction() 開啟一個(gè)事務(wù)。需要先關(guān)閉自動(dòng)提交
commit() 提交事務(wù)
rollBack() 回滾事務(wù)
inTransaction() 檢查操作是否在事務(wù)內(nèi)
三、PDOStatement對象
PDO對象的query()和prepare()方法均會(huì)返回一個(gè)PDOStatement對象,該對象可以用于PDO的預(yù)處理執(zhí)行,其常見方法如下.
方法 描述
execute() 執(zhí)行一條預(yù)處理語句
rowCount() 返回上一個(gè)SQL語句影響的行數(shù)
fetch() 從結(jié)果集中獲取一行
fetchAll() 返回一個(gè)包含結(jié)果中所有行的數(shù)組
setFetchMode() 設(shè)置默認(rèn)獲取結(jié)果集的模式
fetchObject() 獲取結(jié)果集下一行并作為對象返回
fetchColumn() 獲取結(jié)果集下一行的單獨(dú)一列
bindParam() 綁定一個(gè)參數(shù)到指定的變量名
bindValue() 將某個(gè)值綁定到指定的參數(shù)
bindColumn() 綁定一列到PHP變量
getColumnMeta() 返回結(jié)果集中一列的元素?fù)?jù)
columnCount() 返回結(jié)果中的列數(shù)
setAttribute() 設(shè)置一個(gè)語句屬性
getAttribute() 獲取一個(gè)語句屬性
errorCode() 獲取跟數(shù)據(jù)庫句柄上一次操作相關(guān)的SQLSTATE
errorInfo() 獲取跟數(shù)據(jù)庫句柄上一次操作相關(guān)的錯(cuò)誤信息
debugDumpparams() 打印一條SQL預(yù)處理語句
nextRowset() 在一個(gè)多行集語句句柄中推進(jìn)到下一個(gè)行集
四、異常模式
PDO支持三種異常模式:
默認(rèn)模式:PDO::ERRMODE_CLIENT
警告模式:PDO::ERRMODE_WARNING
異常模式:PDO::ERRMODE_EXCEPTION(推薦)
可以在PDO的構(gòu)造函數(shù)的第四個(gè)$options參數(shù)或用PDO對象的setAttribute()方法設(shè)置.
新聞熱點(diǎn)
疑難解答