對PHP鏈接MySQL和其餘數據庫方式的理解

PHP/MySQL是主流的應用開發搭配方式,印象中PHP支持使用不少種數據庫,並且MySQL就有mysql、mysqli、pdo三種API可用。本文旨在從PHP數據庫訪問設計的思路爲軸,簡單的捋清這些關係。mysql

PHP手冊中《數據庫擴展》一章有兩部分:數據庫抽象層、針對各數據庫系統對應的擴展,已是足夠的說明了,要更深入的理解可去研讀。sql

首先,直接的想法是,PHP應該爲不一樣的數據庫實現不一樣的數據庫抽象層,調用客戶端庫API來使用DBMS。以下圖:
圖片描述數據庫

而後,考慮這個場景:當PHP應用寫好後,環境數據庫不一樣時,就要用對應的數據庫抽象層重寫項目全部數據庫相關代碼。因此可否把訪問抽象出來,用不一樣數據庫時,只要切換不一樣實現就ok了。以下圖:
圖片描述服務器

最後,主流選用MySQL固然是既能夠使用mysql、mysqli兩種數據庫抽象層,又能夠使用PDO數據訪問抽象層(須安裝PDO_MYSQL擴展實現PDO接口)。以下圖:
3.pngspa

固然任何一個數據庫抽象層,都要在PHP編譯時都要指定數據庫的客戶端庫以使用數據庫服務器。以MySQL爲例,推薦用mysqlnd庫,配置項:
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd設計

如今是否是清晰些了呢?接口

相關文章
相關標籤/搜索