MySQL: This extension is deprecated as of PHP 5.5.0, and has been removed as of php 7.0.0.
MYSQLI: mysql Improved Extension
MySQLND: MySQL Native Drive
PDO:The PHP Data Objects。extension defines a lightweight, consistent interface for accessing databases in PHP。創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元寧武做網(wǎng)站,已為上家服務(wù),為寧武各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
以上,摘自 PHP官方手冊(cè): http://php.net/manual/en/book.mysqli.php
以下為中文翻譯:
MYSQL 也叫 Original MySQL,PHP4版本的MYSQL擴(kuò)展,從PHP5起已經(jīng)被廢棄,并從PHP7中移除。
MYSQLI 叫做 “MySQL增強(qiáng)擴(kuò)展”。
MYSQLND MYSQL NATIVE DIRVER 叫做MYSQL “官方驅(qū)動(dòng)”或者更加直接點(diǎn)的叫做“原生驅(qū)動(dòng)”
PDO PHP Data Objects PHP數(shù)據(jù)對(duì)象,是PHP應(yīng)用中的一個(gè)數(shù)據(jù)庫抽象層規(guī)范。
再補(bǔ)充幾個(gè)名詞解釋:
1 、什么是API?
一個(gè)應(yīng)用程序接口(Application Programming Interface的縮寫),定義了類,方法,函數(shù),變量等等一切 你的應(yīng)用程序中為了完成特定任務(wù)而需要調(diào)用的內(nèi)容。在PHP應(yīng)用程序需要和數(shù)據(jù)庫進(jìn)行交互的時(shí)候所需要的API 通常是通過PHP擴(kuò)展暴露出來(給終端PHP程序員調(diào)用)。
上文所說的MYSQL 和MYSQLI擴(kuò)展就提供了這樣的API。
2、什么是驅(qū)動(dòng)?
驅(qū)動(dòng)是一段設(shè)計(jì)用來于一種特定類型的數(shù)據(jù)庫服務(wù)器進(jìn)行交互的軟件代碼。驅(qū)動(dòng)可能會(huì)調(diào)用一些庫,
比如MySQL客戶端庫或者M(jìn)ySQL Native驅(qū)動(dòng)庫。 這些庫實(shí)現(xiàn)了用于和MySQL數(shù)據(jù)庫服務(wù)器進(jìn)行交互的底層協(xié)議。
從PHP拓展的角度上看,MYSQL和MYSQLi還是比較上層的拓展,依賴更底層的庫去連接和訪問數(shù)據(jù)庫。
上文所說的MYSQLND 就是所說的底層的數(shù)據(jù)庫驅(qū)動(dòng)。當(dāng)然,還有一個(gè)驅(qū)動(dòng)叫做libmysqlclient。
從應(yīng)用的層面上看,我們通過PHP 的MYSQL或者M(jìn)YSQLi擴(kuò)展提供的API去操作數(shù)據(jù)庫。
從底層來看,MYSQLND提供了底層和數(shù)據(jù)庫交互的支持(可以簡單理解為和MySQL server進(jìn)行網(wǎng)絡(luò)協(xié)議交互)。
而PDO,則提供了一個(gè)統(tǒng)一的API接口,使得你的PHP應(yīng)用不去關(guān)心具體要連接的數(shù)據(jù)庫服務(wù)器系統(tǒng)類型。也就是說,如果你使用PDO的API,可以在任何需要的時(shí)候無縫切換數(shù)據(jù)庫服務(wù)器。比如MYSQL,SQLITE任何數(shù)據(jù)庫都行。
即從大部分功能上看,PDO提供的API接口和MYSQLI提供的接口對(duì)于普通的增刪改查效果是一致的。
通過PHP代碼理解:
MYSQL連接:
MYSQLI連接:
PDO連接:
注意常用參數(shù)
--enable-pdo
--with-pdo-mysql
--enable-mysqlnd
--with-mysqli
--with-mysql //php7的已經(jīng)不再支持,無論是編譯還是yum安裝都會(huì)報(bào)ERROR