您好,登錄后才能下訂單哦!
有朋友下載了PHP5.3,PHP5.4版本想加載mysql支持的時候發現沒有libmysql.dll文件,無法完成mysql配置,其實PHP5.3版本開始,使用mysqlnd庫,不再使用libmysql.dll用來訪問MySQL數據庫,大大提升了PHP的數據庫訪問性能。且默認支持mysql,無需像libmysql.dll要手動復制到windows/system32目錄下。
以前版本的PHP訪問MySQL數據庫,是通過MySQL數據庫的libmysql client庫,這個libmysql client是用C/C++編寫的,雖然一直以來PHP通過libmysql訪問數據庫性能也一直很好,但卻無法利用PHP本身的很多特性。
新的mysqlnd提供了和Zend引擎高度的集成性,更加快速的執行速度,更少的內存消耗,利用了PHP的Stream API,以及客戶段緩存機制。由于mysqlnd是透過Zend引擎,因此提供提供更多高級特性,以及有效利用Zend進行加速
libmysql是直接訪問數據庫的,而mysqlnd是通過Zend訪問數據庫。
以上內容,摘自 http://www.51itz.com/?p=467 ,是對PHP5.3沒有libmysql.dll的很好說明,這在PHP手冊中也有詳細說明。
以下是由此帶來的困擾,尤其是對新手而言。
1.在閱讀一些過時的PHP教程時,會提到libmysql.dll文件,甚或提到要將該文件和php5ts.dll復制到Windows的system32目錄下,于是,新手在此時卻發現下載的PHP5.3包里沒有libmysql.dll文件,于是很困惑。實際上,PHP是有意去除libmysql.dll文件的,因為它提供了更好的替代方式,就是內嵌的php模塊“mysqlnd”,也正是由于“mysqlnd”是內嵌的,所以不需要多余的類似libmysql.dll的文件。同時,這對于mysql、mysqli、PDO的使用也是沒有影響的,因為這只是對mysql底層交互的方式的更新,php程序員不用管它,原來的還是一樣用。
2.在Windows中配置php.ini的extension_dir選項時,一定要確保它可用,然后再去測試某個擴展是否有用。這是做事的順序問題,不是技術問題。本人多次因使用相對路徑而非絕對路徑而浪費了很多調試時間!PHP手冊中提到該選項可用相對路徑或者絕對路徑,而本人發現在Windows下只能使用絕對路徑,這個請一定注意!
3.從mysql官網http://www.mysql.com/downloads/的“MySQL Connectors”一節可以看出,mysql提供了針對C++、Java、.Net、C、ODBC等通信接口,而對C的接口就是libmysql.dll,它可以用于PHP,因為PHP是用C寫的。由此也可以知道,libmysql.dll是一個通用的C接口模塊,而不是只對PHP適用。相比,PHP自己研發的mysqlnd模塊則是PHP專有的,是遵從它自己的發布協議的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。