程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP中提供的用於MySQL的主要API是什麼?(官網整理)

PHP中提供的用於MySQL的主要API是什麼?(官網整理)

編輯:PHP綜合

當考慮連接到MySQL數據庫服務器的時候,有三種主要的API可供選擇:

  1. PHP的MySQL擴展
  2. PHP的mysqli擴展
  3. PHP數據對象(PDO)

三者都有各自的優缺點。下面的討論就是為了對每種API的關鍵方面給出一個簡短的介紹。

什麼是PHP的MySQL擴展?

這是設計開發允許PHP應用與MySQL數據庫交互的早期擴展。mysql擴展提供了一個面向過程 的接口,並且是針對MySQL4.1.3或更早版本設計的。因此,這個擴展雖然可以與MySQL4.1.3或更新的數據庫服務端 進行交互,但並不支持後期MySQL服務端提供的一些特性。
mysql擴展的源代碼在PHP擴展目錄ext/mysql下。

什麼是PHP的mysqli擴展?

mysqli擴展,我們有時稱之為MySQL增強擴展,可以用於使用 MySQL4.1.3或更新版本中新的高級特性。mysqli擴展在PHP 5及以後版本中包含。

mysqli擴展有一系列的優勢,相對於mysql擴展的提升主要有:

  • 面向對象接口

  • prepared語句支持(譯注:關於prepare請參閱mysql相關文檔)

  • 多語句執行支持

  • 事務支持

  • 增強的調試能力

  • 嵌入式服務支持

在提供了面向對象接口的同時也提供了一個面向過程的接口。

mysqli擴展是使用PHP擴展框架構建的,它的源代碼在PHP源碼目錄下的ext/mysqli中。

什麼是PDO?

PHP數據對象,是PHP應用中的一個數據庫抽象層規范。PDO提供了一個統一的API接口可以使得你的PHP應用不去關心具體要 連接的數據庫服務器系統類型。也就是說,如果你使用PDO的API,可以在任何需要的時候無縫切換數據庫服務器,比如從Firebird 到MySQL,僅僅需要修改很少的PHP代碼。

其他數據庫抽象層的例子包括Java應用中的JDBC以及Perl中的DBI。

當然,PDO也有它自己的先進性,比如一個干淨的,簡單的,可移植的API,它最主要的缺點是會限制讓你不能使用 後期MySQL服務端提供所有的數據庫高級特性。比如,PDO不允許使用MySQL支持的多語句執行。

PDO是基於PHP擴展框架實現的,它的源碼在PHP源碼目錄的ext/pdo下。

什麼是PDO的MySQL驅動器?

PDO的MySQL驅動並不是一套API,至少從PHP程序員的角度來看是這樣的。實際上,PDO的MySQL驅動處於PDO自己的下層, 提供了特定的Mysql功能。程序員直接調用PDO的API,而PDO使用了PDO的MySQL驅動完成與MySQL服務器端的交互。

PDO的MySQL驅動是眾多PDO驅動中的一個。其他可用的PDO驅動包括Firebird,PostgreSQL等等。

PDO的MySQL驅動是基於PHP擴展框架實現的。它的源碼在PHP源碼目錄下的ext/pdo_mysql。 它沒有向PHP程序員暴露API。

什麼是PHP的MySQL Native 驅動?

為了與MySQL數據庫服務端進行交互,mysql擴展,mysqli擴展, PDO MySQL驅動都使用了實現了必要的協議的底層庫。以前,可用的庫只有MySQL客戶端庫和libmysql。

然而,libmysql包含的接口沒有針對與PHP的應用交互進行優化,libmysql 是早期為C應用程序設計的。基於這個原因,MySQL Native驅動mysqlnd,作為libmysql的一個 針對PHP應用的修改版本被開發。

mysql,mysqli以及PDO Mysql驅動都可以各自配置使用 libmysql或者mysqlnd。mysqlnd作為一個專門設計 用於PHP系統的庫,它在內存和速度上都比libmysql有很大提升。非常希望你去嘗試這些提升。

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved