PHP的MySQL擴(kuò)展
網(wǎng)站建設(shè)設(shè)計(jì)開發(fā)允許PHP應(yīng)用與MySQL數(shù)據(jù)庫交互的早期擴(kuò)展。mysql擴(kuò)展提供了一個(gè)面向過程 的接口;
并且是針對MySQL4.1.3或更早版本設(shè)計(jì)的。因此,這個(gè)擴(kuò)展雖然可以與MySQL4.1.3或更新的數(shù) ;
據(jù)庫服務(wù)端 進(jìn)行交互,但并不支持后期MySQL服務(wù)端提供的一些特性。
PHP的mysqli擴(kuò)展
mysqli擴(kuò)展,我們有時(shí)稱之為MySQL增強(qiáng)擴(kuò)展,可以用于使用 MySQL4.1.3或更新版本中新的高級特性;
mysqli擴(kuò)展在PHP 5及以后版本中包含;
mysqli擴(kuò)展有一系列的優(yōu)勢,相對于mysql擴(kuò)展的提升主要有:面向?qū)ο蠼涌凇?prepared語句支持、多語句執(zhí)行支持、事務(wù)支持、增強(qiáng)的調(diào)試能力、嵌入式服務(wù)支持。
PHP數(shù)據(jù)對象(PDO)
PHP數(shù)據(jù)對象,是PHP應(yīng)用中的一個(gè)數(shù)據(jù)庫抽象層規(guī)范。PDO提供了一個(gè)統(tǒng)一的API接口可以,使得你的PHP應(yīng)用不去關(guān)心具體要 連接的數(shù)據(jù)庫服務(wù)器系統(tǒng)類型。也就是說,如果你使用PDO的API,可以在任何需要的時(shí)候無縫切換數(shù)據(jù)庫服務(wù)器。
PHP-MySQL 是 PHP 操作 MySQL 資料庫最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement ,提更了相對進(jìn)階的功能,就 Extension 而言,本身也增加了安全性。而 PDO (PHP Data Object) 則是提供了一個(gè) Abstraction Layer 來操作資料庫
1.mysql與mysqli
mysqli是php5提供的新函數(shù)庫,(i)表示改進(jìn),其執(zhí)行速度更快.當(dāng)然也更安全
mysql是非持繼連接函數(shù)而mysqli是永遠(yuǎn)連接函數(shù)。也就是說,mysql每次鏈接都會(huì)打開一個(gè)連接的進(jìn)程而mysqli多次運(yùn)行mysqli將使用同一連接進(jìn)程,從而減少了服務(wù)器的開銷 有些朋友在編程的時(shí)候,使用new mysqli(‘localhost’, usenamer’, ‘password’, ‘databasename’);總是報(bào)錯(cuò),F(xiàn)atal error: Class ‘mysqli’ not found in d:\…
mysqli類不是php自帶的嗎?
不是默認(rèn)開啟的,win下要改php.ini,去掉php_mysqli.dll前的#;,Linux下要把mysqli編譯進(jìn)去。
2.PDO與mysql
PDO是PHP5.1之后才支持的,他為訪問數(shù)據(jù)庫采用了一致性的接口。
在鏈接MySQL上幾乎沒有區(qū)別。PDO的性能損失完全可以忽略不計(jì)。但是卻有非常多的操作卻是MySQL擴(kuò)展庫所不具備的:
1:PDO真正的以底層實(shí)現(xiàn)的統(tǒng)一接口數(shù)庫操作接口
2:PDO支持更高級的DB特性操作,如:存儲(chǔ)過程的調(diào)度等,mysql原生庫是不支持的.
3:PDO是PHP官方的PECL庫,兼容性穩(wěn)定性必然要高于MySQL Extension,可以直接使用 pecl upgrade pdo 命令升級.
PHP6默認(rèn)也是使用PDO進(jìn)行數(shù)據(jù)庫鏈接,MySQL Extension會(huì)作為輔助。
所以我們在日常網(wǎng)站建設(shè)項(xiàng)目中,如果環(huán)境允許,盡可能去使用PDO來進(jìn)行MySQL數(shù)據(jù)庫操作。


