php 没有libmysql.dll,PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰
有朋友下載了PHP5.3,PHP5.4版本想加載mysql支持的時(shí)候發(fā)現(xiàn)沒有l(wèi)ibmysql.dll文件,無法完成mysql配置,其實(shí)PHP5.3版本開始,使用mysqlnd庫,不再使用libmysql.dll用來訪問MySQL數(shù)據(jù)庫,大大提升了PHP的數(shù)據(jù)庫訪問性能。且默認(rèn)支持mysql,無需像libmysql.dll要手動復(fù)制到windows/system32目錄下。
以前版本的PHP訪問MySQL數(shù)據(jù)庫,是通過MySQL數(shù)據(jù)庫的libmysql client庫,這個(gè)libmysql client是用C/C++編寫的,雖然一直以來PHP通過libmysql訪問數(shù)據(jù)庫性能也一直很好,但卻無法利用PHP本身的很多特性。
新的mysqlnd提供了和Zend引擎高度的集成性,更加快速的執(zhí)行速度,更少的內(nèi)存消耗,利用了PHP的Stream API,以及客戶段緩存機(jī)制。由于mysqlnd是透過Zend引擎,因此提供提供更多高級特性,以及有效利用Zend進(jìn)行加速
libmysql是直接訪問數(shù)據(jù)庫的,而mysqlnd是通過Zend訪問數(shù)據(jù)庫。
以上內(nèi)容,摘自http://www.51itz.com/?p=467,是對PHP5.3沒有l(wèi)ibmysql.dll的很好說明,這在PHP手冊中也有詳細(xì)說明。
以下是由此帶來的困擾,尤其是對新手而言。
1.在閱讀一些過時(shí)的PHP教程時(shí),會提到libmysql.dll文件,甚或提到要將該文件和php5ts.dll復(fù)制到Windows的system32目錄下,于是,新手在此時(shí)卻發(fā)現(xiàn)下載的PHP5.3包里沒有l(wèi)ibmysql.dll文件,于是很困惑。實(shí)際上,PHP是有意去除libmysql.dll文件的,因?yàn)樗峁┝烁玫奶娲绞?#xff0c;就是內(nèi)嵌的php模塊“mysqlnd”,也正是由于“mysqlnd”是內(nèi)嵌的,所以不需要多余的類似libmysql.dll的文件。同時(shí),這對于mysql、mysqli、PDO的使用也是沒有影響的,因?yàn)檫@只是對mysql底層交互的方式的更新,php程序員不用管它,原來的還是一樣用。
2.在Windows中配置php.ini的extension_dir選項(xiàng)時(shí),一定要確保它可用,然后再去測試某個(gè)擴(kuò)展是否有用。這是做事的順序問題,不是技術(shù)問題。本人多次因使用相對路徑而非絕對路徑而浪費(fèi)了很多調(diào)試時(shí)間!PHP手冊中提到該選項(xiàng)可用相對路徑或者絕對路徑,而本人發(fā)現(xiàn)在Windows下只能使用絕對路徑,這個(gè)請一定注意!
3.從mysql官網(wǎng)http://www.mysql.com/downloads/的“MySQL Connectors”一節(jié)可以看出,mysql提供了針對C++、Java、.Net、C、ODBC等通信接口,而對C的接口就是libmysql.dll,它可以用于PHP,因?yàn)镻HP是用C寫的。由此也可以知道,libmysql.dll是一個(gè)通用的C接口模塊,而不是只對PHP適用。相比,PHP自己研發(fā)的mysqlnd模塊則是PHP專有的,是遵從它自己的發(fā)布協(xié)議的。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的php 没有libmysql.dll,PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: list redis 怎样做排行_red
- 下一篇: mysql binary安装_mysql