PHP PDO

PDO



類似於,mysql擴展,也是一種操作mysql服務器的方式。5.1版本後PHP發行,並隨着PHP的發展,PHP認爲PDO纔是操作數據的合理方式。開始逐漸摒棄mysql擴展,爲什麼呢:PHP開始逐漸模塊化,封裝規範操作。


開啓PDO對MySQL的支持



php.ini

這裏寫圖片描述



PDO初用



這裏寫圖片描述


先來段代碼,後面會有做解釋。


以下 是PHP手冊中PDO操作類的查詢位置:


這裏寫圖片描述




PDO基礎操作



實例化PDO對象


PDO上所有的操作,都需要從PDO對象上開啓!一般需要4個參數

一:數據源名稱:DSN。Data Source Name。用於表示,我們的數據的來源。例如:
這裏寫圖片描述

第一個mysql 標示數據庫類型
host : 數據庫地址
port : 端口號
dbname: 數據庫名稱

二:用戶名

三:密碼

四:數據庫選項,在連接數據庫服務器後,做的初始化工作。

其中,最常用的就是:
在PDO中,所有的屬性(選項)都是採用語義化的常量表示的。及MYSQL_ATTR_INIT_COMMAND只是PHP中類型碼的語義化常量,在PHP編譯中會把他轉成類型碼執行(這麼做方便用戶執行)。
PDO::MYSQL_ATTR_INIT_COMMAND,MySQL的初始化命令的屬性

這裏寫圖片描述

當實例化完,PDO對象時,PDO就自動完成數據庫連接!

你只需要做的操作

$pdo = new PDO($dsn,$username,$password,$options);




執行SQL(結構化查詢語言)


PDO對象的方法:
結果集對象 = query():查詢類,select,show,desc
受影響的記錄數 = exec():非查詢類,insert,update,delete,表操作,庫操作
用於,完成執行SQL。
只要是執行失敗(SQL出錯),都返回false!


查詢類:如果是查詢類,會先返回一個結果集。這個結果集表示執行的結果,下面會說

這裏寫圖片描述

非查詢類:

這裏寫圖片描述





操作結果集對象 (PDOStatement)


爲了獲取最終的數據!
使用結果集對象(PDOStatement)上定義的方法來完成
典型的方式:
獲取全部數據
二維數組 = fetchAll(); //全部的結果集
一維數組 = fetch() //結果集的第一行
字符串數據 = fetchColumn();//結果集第一行的第一個數據


可以在 fetchAll和fetch中使用參數:
PDO::FETCH_ASSOC, POD::FETCH_NUM, PDO::FETCH_BOTH
的方式,獲取,關聯數組,索引數組,兩者都!


如下圖


fetchAll();

這裏寫圖片描述

fetch();

這裏寫圖片描述

fetchColumn();

這裏寫圖片描述





PDO對象的常用方法


$pdo->query();
查詢結果集,返回的是結果集對象(PDOStatement)

$pdo->exec();
返回受影響行數

$pdo->errorCode();
錯誤狀態碼

$pdo->errorInfo()
錯誤信息數組(包含錯誤狀態碼,消息碼,消息字符串)。

這裏寫圖片描述


錯誤狀態碼可以查詢手冊獲得其信息

這裏寫圖片描述





比較經常使用的PDO方法



$pdo->lastInsertID();


用來獲取 最新生成的(只有增加的時候) auto_increment的字段的值。最新的ID!

這裏寫圖片描述



$pdo->Quote()
轉義數據,並使用引號包裹!(防止SQL注入)

這裏寫圖片描述

因此,在使用PDO執行SQL時,應該使用上面的方法,將數據進行轉義處理,防止SQL注入(SQL-injection)


$pdo->beginTransaction();
開啓事務


$pdo->rollback();
回滾事務


$pdo->commit();
提交事務


$pdo->inTransaction();
判斷是否處於事務中!

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