我一直在使用php已經有一段時間了,並且遇到了三種不同的界面, mysql_*, mysqli_* and PDO
與mysql數據庫連接。我無法理解的是爲什麼有這麼多的接口相同..如果一個更好,那一個?或者是選擇一個還是另一個之間的選擇問題。每個接口的性能和速度是否存在差異?哪個mysql庫應該在php中使用,爲什麼
3
A
回答
4
儘管mysql(procedural)和mysqli(OO)是MySQL客戶端庫,但PDO是一個數據訪問抽象層,它允許您使用不同的數據庫驅動程序。 PDO的一個優點是,你可以在理論上改變你的數據庫驅動,而不用重寫你的查詢代碼。
我建議您檢查http://php.net/manual/en/mysqli.overview.php,其中簡要討論了這3個庫之間的區別。
1
與MySQL相比,MySQLi擴展是一個新的改進的數據庫驅動程序(因此是和)。 使用MySQLi,您可以充分利用準備好的語句以及fcingolani所說的功能。
PDO是一個數據訪問抽象層,它有許多驅動程序,如MsSQL,MySQL和PostgreSQL。
1
如果你真的只使用MySQL,你應該使用MySQLi
,因爲它特定於MySQL,速度更快,常規的MySQL
。如果你現在在做MySQL,但可能在將來做Postgree或任何數據庫,PDO會從實際的數據庫中抽象出你的數據庫邏輯,所以應該是你的選擇。
MySQLi是稍快對某些操作PDO。
相關問題
- 1. MySQL:我應該使用哪一個,爲什麼?
- 2. 我應該在PHP中使用Iterator的哪個實現,爲什麼?
- 3. 什麼是PHP Twitter OAuth庫可用?我應該使用哪一個?
- 4. 應該選擇哪個ItemControl?爲什麼?
- 5. 爲什麼我應該在Xamarin中使用可移植類庫?
- 6. 爲什麼我應該在PHP網站中使用MVC?
- 7. JAVA中應該使用哪種數組類型,爲什麼?
- 8. Sxml與xexp有什麼區別,爲什麼我應該使用哪個?
- 9. 我應該使用哪個庫?
- 10. 我應該使用哪個Python XML庫?
- 11. 我應該使用哪一個OpenGL庫?
- 12. 我應該使用哪個JavaScript庫?
- 13. 我應該使用哪個Box2D JavaScript庫?
- 14. 我應該使用哪個PHP Session類?
- 15. PHP 5.3.x和PHP 5.2.x有什麼區別,我應該使用哪一個?
- 16. 我應該爲這個項目使用哪個PHP框架?
- 17. 我應該使用什麼JavaScript庫?
- 18. 爲什麼我應該在這個程序中使用fflush(stdin)?
- 19. 爲什麼我應該在這個例子中使用Redux?
- 20. 這個REST API的參數值應該在哪裏?爲什麼?
- 21. 爲什麼我應該在Silverlight應用程序中使用MVVM?
- 22. 我應該使用哪個庫在Common Lisp中生成RSS?
- 23. 我應該在生產中使用哪個tomcat本機庫?
- 24. 我應該在這個VB.NET應用程序中使用什麼數據庫?
- 25. 我應該在PHP中使用什麼用戶身份驗證?
- 26. PHP中的函數已棄用,現在應該使用什麼?
- 27. 什麼時候應該在mySQL中使用``或''?
- 28. 我應該在MySQL中使用什麼樣的整數?
- 29. 我應該爲此使用哪個HTML5 Canvas庫?
- 30. 在Twisted中使用MongoDB。爲什麼我不應該使用pymongo?