一、pdo簡介
pdo是php data object的簡稱,用於定義資料庫訪問的抽象層,統一各種資料庫的訪問介面。pdo有如下特性:
pdo支援的資料庫:
但是,需要注意的是,pdo只是提供了一組資料庫訪問介面,利用pdo本身不能操作任何資料庫。
二、pdo物件
利用pdo的建構函式連線特定的資料庫,建立乙個pdo物件。在利用pdo之前,需要開啟pdo擴充套件。以php+mysql為例,
開啟php對pdo的擴充套件:在php.ini中去掉extension=php_pdo.dll的注釋。
開啟mysql對pdo的擴充套件:在my.ini中去掉extension=php_pdo_mysql.dll的注釋。
利用phpinfo()可以檢視是否開啟pdo擴充套件。
1、連線資料庫
pdo連線資料庫有三種方式:
1.1 通過引數形式連線(推薦)
$username = "***xx";
$pwd = "***x";
$pdo = new pdo($dsn,$username,$pwd);
pdo建構函式還有乙個$options引數,它是乙個陣列,用於配置執行中的資料庫,如是否開啟自動提交、設定結果集的返回方式等。
1.2 通過uri連線
首先建立乙個檔案,儲存資料來源,檔案內容形如:mysql:host=localhost;dbname=***。然後在程式中引入該檔案。
$username = "***xx";
$pwd = "***x";
$pdo = new pdo($dsn,$username,$pwd);
1.3 通過配置檔案連線
在php.ini中的任意乙個位置新增資料來源的配置:
pdo.dsn.test=」mysql:host=localhost;dbname=***x」;
test是自定義的資料來源名稱。為方便,可以在php.ini的首行中新增,然後重啟伺服器,在程式中引入該資料來源
$username = "***xx";
$pwd = "***x";
$pdo = new pdo($dsn,$username,$pwd);
2、pdo物件的常見方法和屬性
方法或屬性
描述exec()
執行一條sql語句,返回受影響的行數。用於增刪改,對查詢返回0
query()
執行一條sql語句,返回pdostatement物件,用於儲存結果集
prepare()
執行一條sql語句,返回pdostatement物件
quote()
返回乙個新增引號的字串,用於sql語句,可防止sql注入
lastinsertid
返回最後插入的id
setattribute()
設定資料庫連線屬性
getattribute()
獲取資料庫連線屬性
errorcode()
errorinfo()
begintransaction()
開啟乙個事務。需要先關閉自動提交
commit()
提交事務
rollback()
回滾事務
intransaction()
檢查操作是否在事務內
三、pdostatement物件
pdo物件的query()和prepare()方法均會返回乙個pdostatement物件,該物件可以用於pdo的預處理執行。其常見方法如下: 方法
描述execute()
執行一條預處理語句
rowcount()
返回上乙個sql語句影響的行數
fetch()
從結果集中獲取一行
fetchall()
返回乙個包含結果中所有行的陣列
setfetchmode()
設定預設獲取結果集的模式
fetchobject()
獲取結果集下一行並作為物件返回
fetchcolumn()
獲取結果集下一行的單獨一列
bindparam()
繫結乙個引數到指定的變數名
bindvalue()
將某個值繫結到指定的引數
bindcolumn()
繫結一列到php變數
getcolumnmeta()
返回結果集中一列的元素據
columncount()
返回結果中的列數
setattribute()
設定乙個語句屬性
getattribute()
獲取乙個語句屬性
errorcode()
errorinfo()
debugdumpparams()
列印一條sql預處理語句
nextrowset()
在乙個多行集語句控制代碼中推進到下乙個行集
四、異常模式
pdo支援三種異常模式:
可以在pdo的建構函式的第四個$options引數或用pdo物件的setattribute()方法設定。
原文:
PDO學習筆記
pdo物件的query 和prepare 方法均會返回乙個pdostatement物件,該物件可以用於pdo的預處理執行,常見方法如下 方法或屬性 描述execute 執行一條預處理語句 rowcount 返回上乙個sql語句影響的條數 fetch 從結果集中獲取一行 fetchall 返回乙個包含...
PHP學習筆記 PDO連線MySQL
作業要做乙個網頁系統,臨時需要用到php,現學一下。php iis mysql的環境配置等會上。需要開啟外掛程式支援。資料庫變數 servername localhost 資料庫位址 username daya password 123456 dbname person 資料庫名 tbname in...
php學習筆記之PDO預處理
pdo預處理方法 prepare 用於執行查詢sql語句,返回pdostatement物件 bindvalue 將值繫結到對應的乙個引數,返回布林值 bindparam 將引數繫結到相應的查詢佔位符上,返回布林值 bindcolumn 用來匹配列名和乙個指定的變數名 execte 執行乙個準備好了的...