PDO屬性、方法

PDO一是PHP數據對象(PHP Data Object)的縮寫,就是把操作數據庫的函數封裝成一個pdo類,其間做了安全驗證。POD是PHP一個擴展,PDO擴展爲PHP訪問數據庫定義了一個輕量級的、一致性的接口,它提供了一個數據訪問抽象層,這樣,無論使用什麼數據庫,都可以通過一致的函數執行查詢和獲取數據。

PDO常用方法:
PDO::query() 主要用於有記錄結果返回的操作,特別是select操作。
PDO::exec()主要是針對沒有結果集合返回的操作。如insert,update等操作。返回影響行數。
PDO::lastInsertId()返回上次插入操作最後一條ID,但要注意:如果用insert into tb(col1,col2)values(v1,v2),(v11,v22)..的方式一次插入多條記錄,lastinsertid()返回的只是第一條 (v1,v2)插入時的ID,而不是最後一條記錄插入的記錄ID。
PDOStatement::fetch()是用來獲取一條記錄。配合while來遍歷。
PDOStatement::fetchAll()是獲取所有記錄集到一箇中。
PDOStatement::fetchcolumn([intcolumn_indexnum])用於直接訪問列,參數column_indexnum 是該列在行中的從0開始索引值,但是,這個方法一次只能取得同一行的一列,只要執行一次,就跳到下一行。因此,用於直接訪問某一列時較好用,但要遍歷多列 就用不上。
PDOStatement::rowcount()適用於當用query("select...")方法時,獲取記錄的條數。也可以用於預處理中。$stmt->rowcount();
PDOStatement::columncount()適用於當用query("select...")方法時,獲取記錄的列數。

註解:
1、選fetch還是fetchall?
小記錄集時,用fetchall效率高,減少從數據庫檢索次數,但對於大結果集,用fetchall則給系統帶來很大負擔。數據庫要向WEB前端傳輸量太大反而效率低。
2、fetch()或fetchall()有幾個參數:
mixed pdostatement::fetch([int fetch_style[,int cursor_orientation [,int cursor_offset]]])
array pdostatement::fetchAll(int fetch_style)

更多的PDO方法:

PDO::beginTransaction — 啓動一個事務    
PDO::commit — 提交一個事務    
PDO::__construct — 創建一個表示數據庫連接的 PDO 實例    
PDO::errorCode — 獲取跟數據庫句柄上一次操作相關的 SQLSTATE    
PDO::errorInfo — Fetch extended error information associated with the last operation on the database handle    
PDO::exec — 執行一條 SQL 語句,並返回受影響的行數    
PDO::getAttribute — 取回一個數據庫連接的屬性    
PDO::getAvailableDrivers — 返回一個可用驅動的數組    
PDO::inTransaction — 檢查是否在一個事務內    
PDO::lastInsertId — 返回最後插入行的ID或序列值    
PDO::prepare — Prepares a statement for execution and returns a statement object    
PDO::query — Executes an SQL statement, returning a result set as a PDOStatement object    
PDO::quote — Quotes a string for use in a query.    
PDO::rollBack — 回滾一個事務    
PDO::setAttribute — 設置屬性    

PDO異常相關

Exception::getMessage — 獲取異常消息內容。    
Exception::getPrevious — 返回異常鏈中的前一個異常    
Exception::getCode — 獲取異常代碼    
Exception::getFile — 獲取發生異常的程序文件名稱    
Exception::getLine — 獲取發生異常的代碼在文件中的行號    
Exception::getTrace — 獲取異常追蹤信息    
Exception::getTraceAsString — 獲取字符串類型的異常追蹤信息    
Exception::toString — 將異常對象轉換爲字符串    
Exception::clone — 異常克隆    


PDO屬性列表:

PDO::PARAM_BOOL  
表示一個布爾類型  
PDO::PARAM_NULL  
表示一個SQL中的NULL類型  
PDO::PARAM_INT  
表示一個SQL中的INTEGER類型  
PDO::PARAM_STR  
表示一個SQL中的SQL CHAR,VARCHAR類型  
PDO::PARAM_LOB  
表示一個SQL中的large object類型  
PDO::PARAM_STMT  
表示一個SQL中的recordset類型,還沒有被支持  
PDO::PARAM_INPUT_OUTPUT  
Specifies that the parameter is an INOUT parameter for a stored procedure. You must bitwise-OR this value with an explicit PDO::PARAM_* data type.  
PDO::FETCH_LAZY  
將每一行結果作爲一個對象返回  
PDO::FETCH_ASSOC  
僅僅返回以鍵值作爲下標的查詢的結果集,名稱相同的數據只返回一個  
PDO::FETCH_NAMED  
僅僅返回以鍵值作爲下標的查詢的結果集,名稱相同的數據以數組形式返回  
PDO::FETCH_NUM  
僅僅返回以數字作爲下標的查詢的結果集  
PDO::FETCH_BOTH  
同時返回以鍵值和數字作爲下標的查詢的結果集  
PDO::FETCH_OBJ  
以對象的形式返回結果集  
PDO::FETCH_BOUND  
將PDOStatement::bindParam()和PDOStatement::bindColumn()所綁定的值作爲變量名賦值後返回  
PDO::FETCH_COLUMN  
表示僅僅返回結果集中的某一列  
PDO::FETCH_CLASS  
表示以類的形式返回結果集  
PDO::FETCH_INTO  
表示將數據合併入一個存在的類中進行返回  
PDO::FETCH_FUNC  
PDO::FETCH_GROUP  
PDO::FETCH_UNIQUE  
PDO::FETCH_KEY_PAIR  
以首個鍵值下表,後面數字下表的形式返回結果集  
PDO::FETCH_CLASSTYPE  
PDO::FETCH_SERIALIZE  
表示將數據合併入一個存在的類中並序列化返回  
PDO::FETCH_PROPS_LATE  
Available since PHP 5.2.0  
PDO::ATTR_AUTOCOMMIT  
在設置成true的時候,PDO會自動嘗試停止接受委託,開始執行  
PDO::ATTR_PREFETCH  
設置應用程序提前獲取的數據大小,並非所有的數據庫哦度支持  
PDO::ATTR_TIMEOUT  
設置連接數據庫超時的值  
PDO::ATTR_ERRMODE  
設置Error處理的模式  
PDO::ATTR_SERVER_VERSION  
只讀屬性,表示PDO連接的服務器端數據庫版本  
PDO::ATTR_CLIENT_VERSION  
只讀屬性,表示PDO連接的客戶端PDO驅動版本  
PDO::ATTR_SERVER_INFO  
只讀屬性,表示PDO連接的服務器的meta信息  
PDO::ATTR_CONNECTION_STATUS  
PDO::ATTR_CASE  
通過PDO::CASE_*中的內容對列的形式進行操作  
PDO::ATTR_CURSOR_NAME  
獲取或者設定指針的名稱  
PDO::ATTR_CURSOR  
設置指針的類型,PDO現在支持PDO::CURSOR_FWDONLY和PDO::CURSOR_FWDONLY  
PDO::ATTR_DRIVER_NAME  
返回使用的PDO驅動的名稱  
PDO::ATTR_ORACLE_NULLS  
將返回的空字符串轉換爲SQL的NULL  
PDO::ATTR_PERSISTENT  
獲取一個存在的連接  
PDO::ATTR_STATEMENT_CLASS  
PDO::ATTR_FETCH_CATALOG_NAMES  
在返回的結果集中,使用自定義目錄名稱來代替字段名。  
PDO::ATTR_FETCH_TABLE_NAMES  
在返回的結果集中,使用自定義表格名稱來代替字段名。  
PDO::ATTR_STRINGIFY_FETCHES  
PDO::ATTR_MAX_COLUMN_LEN  
PDO::ATTR_DEFAULT_FETCH_MODE  
Available since PHP 5.2.0  
PDO::ATTR_EMULATE_PREPARES  
Available since PHP 5.1.3.  
PDO::ERRMODE_SILENT  
發生錯誤時不彙報任何的錯誤信息,是默認值  
PDO::ERRMODE_WARNING  
發生錯誤時發出一條php的E_WARNING的信息  
PDO::ERRMODE_EXCEPTION  
發生錯誤時拋出一個PDOException  
PDO::CASE_NATURAL  
回覆列的默認顯示格式  
PDO::CASE_LOWER  
強制列的名字小寫  
PDO::CASE_UPPER  
強制列的名字大寫  
PDO::NULL_NATURAL  
PDO::NULL_EMPTY_STRING  
PDO::NULL_TO_STRING  
PDO::FETCH_ORI_NEXT  
獲取結果集中的下一行數據,僅在有指針功能時有效  
PDO::FETCH_ORI_PRIOR  
獲取結果集中的上一行數據,僅在有指針功能時有效  
PDO::FETCH_ORI_FIRST  
獲取結果集中的第一行數據,僅在有指針功能時有效  
PDO::FETCH_ORI_LAST  
獲取結果集中的最後一行數據,僅在有指針功能時有效  
PDO::FETCH_ORI_ABS  
獲取結果集中的某一行數據,僅在有指針功能時有效  
PDO::FETCH_ORI_REL  
獲取結果集中當前行後某行的數據,僅在有指針功能時有效  
PDO::CURSOR_FWDONLY  
建立一個只能向後的指針操作對象  
PDO::CURSOR_SCROLL  
建立一個指針操作對象,傳遞PDO::FETCH_ORI_*中的內容來控制結果集  
PDO::ERR_NONE (string)  
設定沒有錯誤時候的錯誤信息  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章