## PDO(PHP Data Object) 介紹
PHP + MySQL 是流行的應用開發搭配方式,PHP支持使用多種數據庫,就 MySQL 而言就有 mysql、mysqli、pdo 三種 API 可用。
PHP 中三種主要的 MySQL 連接方式的功能對比:
| | mysqli | PDO | mysql |
| --- | --- | --- | --- |
| 引入的PHP版本 | 5.0 | 5.0 | 3.0之前 |
| PHP5.x是否包含 | 是 | 是 | 是 |
| MySQL開發狀態 | 活躍 |在PHP5.3中活躍 | 僅維護 |
| 在MySQL新項目中的建議使用程度 | 首選 | 建議 | 不建議 |
| API的字符集支持 | 是 | 是 | 否 |
| 服務端prepare語句的支持情況 | 是 | 是 | 否 |
| 客戶端prepare語句的支持情況 | 否 | 是 | 否 |
| 存儲過程支持情況 | 是 | 是 | 否 |
| 多語句執行支持情況 | 是 | 大多數 | 否 |
| 是否支持所有MySQL4.1以上功能 | 是 | 大多數 | 否 |
### 什么是 PDO ?
PDO 擴展為 PHP 訪問數據庫定義了一個輕量級的一致接口。實現 PDO 接口的每個數據庫驅動可以公開具體數據庫的特性作為標準擴展功能。
**注意:** PDO 擴展自身并不能實現任何數據庫功能,必須使用一個具體數據庫的 PDO 驅動來訪問數據庫服務。
### 為何使用 PDO ?
* PDO 提供了一個數據訪問抽象層,不管使用何種數據庫,都可以用相同的方法來存取數據。
* PDO 提供了強大的預處理語句功能,可以優化語句的解析時間,并且有效的防止 SQL 注入。
* PDO 提供了更強大友好的異常處理機制。
### 驅動支持
下列驅動目前實現了 PDO 接口:
| 驅動名稱 | 支持的數據庫 |
| --- | --- |
| PDO_CUBRID | Cubrid |
| PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase |
| PDO_FIREBIRD | Firebird/Interbase 6 |
| PDO_IBM | IBM DB2 |
| PDO_INFORMIX | IBM Informix Dynamic Server |
| PDO_MYSQL | MySQL 3.x/4.x/5.x |
| PDO_OCI | Oracle Call Interface |
| PDO_ODBC | ODBC v3 (IBM DB2, unixODBC and win32 ODBC) |
| PDO_PGSQL | PostgreSQL |
| PDO_SQLITE | SQLite 3 及 SQLite 2 |
| PDO_SQLSRV | Microsoft SQL Server / SQL Azure |
| PDO_4D | 4D |
- 基本語法
- PHP標記
- 指令分隔符
- 從HTML中分離
- 注釋
- 數據類型
- 布爾值
- 整數
- 浮點數
- 字符串
- 數組
- 對象
- 資源
- 空值
- 變量
- 基礎
- 預定義變量
- 變量范圍
- 可變變量
- 常量
- 常量語法
- 魔術常量
- 運算符
- 算術運算符
- 賦值運算符
- 位運算符
- 比較運算符
- 遞增與遞減運算符
- 邏輯運算符
- 字符串運算符
- 數組運算符
- 類型運算符
- 流程控制
- if條件結構
- switch條件結構
- while循環結構
- do-while循環結構
- for循環結構
- foreach循環結構
- 包含文件
- 函數
- 自定義函數
- 可變函數
- 匿名函數
- 遞歸函數
- 類與對象
- 基本概念
- 屬性
- 方法
- 類常量
- 構造函數和析構函數
- 訪問控制
- 繼承
- 抽象類
- 接口
- Trait
- 重載
- 對象遍歷
- 魔術方法
- Final關鍵字
- 命名空間
- 自動加載
- 錯誤處理
- 錯誤顯示
- 錯誤日志
- 錯誤報告
- 自定義錯誤處理
- 異常處理
- 異常處理機制
- 擴展異常處理類
- 字符操作
- 數組操作
- 時間操作
- 表單操作
- GET提交
- POST提交
- 文件上傳
- 會話控制
- COOKIE操作
- SESSION操作
- 文件操作
- 文件屬性
- 讀取文件
- 寫入文件
- 文件管理
- 文件鎖
- 目錄處理
- 路徑處理
- 網絡操作
- HTTP協議
- Socket操作
- CURL操作
- PDO操作
- 介紹
- 連接管理
- 預處理語句
- 事務處理
- 錯誤處理
- 圖像操作
- 正則表達式
- 標準推薦
- 包管理器
- 設計模式
- 常用算法
- 安全防御
- XSS防御
- CSRF防御