關(guān)于在php.ini中添加extension=php_mysqli.dll指令的說(shuō)明
在配置php5時(shí)要使用mysql作為數(shù)據(jù)庫(kù),很多人都認(rèn)為只要在php.ini中添加extension=php_mysql.dll;指令即可,不清楚為什么很多文章都推薦還要添加extension=php_mysqli.dll;指令。
只要查看官方最新php手冊(cè)便知,上面寫(xiě)到:
下面是內(nèi)置的擴(kuò)展庫(kù)列表:
PHP 5 中(截止到 5.0.4)有以下修改。新增內(nèi)置:DOM,LibXML,Iconv,SimpleXML,SPL 和SQLite。以下不再內(nèi)置:MySQL 和 Overload。
原來(lái)php5沒(méi)有內(nèi)置這些擴(kuò)展庫(kù)(當(dāng)然也可以得出在使用php4時(shí),不需要添加這些指令),至于為什么php5沒(méi)有不再綁定mysql的客戶端庫(kù),手冊(cè)中也有說(shuō)明:
部分原因是(無(wú)特定順序):
。現(xiàn)今大多數(shù)系統(tǒng)已經(jīng)安裝了客戶端庫(kù)了。
。由于以上原因,保持多個(gè)版本的庫(kù)文件會(huì)導(dǎo)致混亂。例如,如果把 mod_auth_mysql 連接到某個(gè)版本,但把 PHP 連接到了另一個(gè)版本,然后在 Apache 中同時(shí)激活了它們,會(huì)得到無(wú)數(shù)錯(cuò)誤。此外,綁定的庫(kù)文件也不總是能和服務(wù)器端的版本很好地配合。對(duì)此最明顯的癥狀是上哪里去找 UNIX 域套接字文件 mysql.socket。
。維護(hù)有些松懈,并且已經(jīng)越來(lái)越落后于發(fā)行的版本了。
。未來(lái)的庫(kù)版本是基于 GPL 的,因此我們沒(méi)有升級(jí)的途徑了,因?yàn)槲覀儾荒軐⒒?GPL 的庫(kù)和 BSD/Apache 風(fēng)格許可證的項(xiàng)目綁定到一起。因此具有一個(gè)干凈的 PHP 5 是最好的選擇。
配置時(shí)為php激活兩個(gè)擴(kuò)展庫(kù)的原因是因?yàn)椋?/P>
。為了能使用基本函數(shù)操作訪問(wèn)mysql數(shù)據(jù)庫(kù)服務(wù)器,必須在配置php時(shí)添加mysql的支持,即使用php_mysql.dll擴(kuò)展庫(kù)。
。雖然php_mysql.dll擴(kuò)展庫(kù)兼容mysql 4.1.0機(jī)器以后版本,但是它不支持這些版本提供的額外功能,要使用這些功能,還需要使用php_mysqli.dll擴(kuò)展庫(kù)。
PHP 4 中(截止到 PHP 4.3.11):BCMath,Caledar,COM,Ctype,F(xiàn)TP,MySQL,ODBC,Overload,PCRE,Session,Tokenizer,WDDX,XML 和 Zlib。
http://blog.csdn.net/xombat/archive/2007/03/04/1520665.aspx
