他們似乎是同一回事,但卻不同。我不知道哪一個是哪個:我知道我們可以使用PDO作爲new PDO()
並使用prepare()
和query()
方法從數據庫中獲取數據。那麼,如果這是在擴展列表中提到的PDO
,那麼pdo_mysql和mysqlnd究竟是什麼(以俗語來說)?php中的Mysqlnd,PDO和PDO_Mysql擴展有什麼區別?
回答
您需要PDO_Mysql才能在PDO中使用mysql數據庫。這是司機。
Mysqld是您使用PDO或mysqli訪問的Mysql服務器。
Mysqlnd是與Mysql服務器通信的庫/驅動程序,PDO和mysqli都使用它。
如果你打算回答這個問題,做對了。顯示官方文檔中的引號。另外,OP詢問'mysqlnd' - 不是'mysqld'。到目前爲止,你所說的僅僅是邊際,可能只是一個評論。 –
PDO本身是由PHP提供的database abstraction layer。這可能不是頗有意味你想這樣做,但PHP將清除了在the PDO documentation:
PDO提供一個數據訪問抽象層,這意味着,無論你使用的數據庫,可以使用相同的功能來發出查詢和獲取數據。 PDO不提供數據庫抽象;它不會重寫SQL或模擬缺少的功能。如果你需要這個設施,你應該使用一個完整的抽象層。
根據您的系統,you might need to enable its driver才能使用它。 (但可能不是。)
您可以將PDO與各種不同的數據庫(MySQL,Oracle,PostgreSQL等)一起使用,但對於要使用的數據庫類型,您需要enable the specific driver。從我之前鏈接的相同PDO介紹文檔:
請注意,您不能使用自己的PDO擴展執行任何數據庫函數;您必須使用數據庫特定的PDO驅動程序來訪問數據庫服務器。
pdo_mysql就是其中之一。這些驅動程序實現PDO接口,這意味着它們允許您使用prepare()
,query()
等與您的特定數據庫。
mysqlnd
處理PHP和MySQL之間的通信。自PHP 5.4版以來,它一直是所有MySQL擴展的默認驅動程序(如pdo_mysql
),所以如果您使用的是受支持的PHP版本,那麼您可能正在使用它。但它在幕後工作,只是處理溝通。您不會使用任何mysqlnd
函數。從the mysqlnd
documentation的「這不是什麼」一節:
儘管MySQL機驅動程序寫成一個PHP擴展,需要注意的是它並沒有提供新的API,以PHP程序員是非常重要的。 MySQL數據庫連接的編程器API由MySQL擴展mysqli和PDO MYSQL提供。這些擴展現在可以使用MySQL Native Driver的服務與MySQL服務器進行通信。因此,您不應該將MySQL Native Driver視爲API。
- 1. nd_pdo_mysql和pdo_mysql擴展之間的區別是什麼?
- 2. ,繼承和擴展有什麼區別?
- 3. Selenium核心擴展和Selenium IDE擴展有什麼區別?
- 4. ISAPI擴展:TerminateExtension和擴展析構函數有什麼區別?
- 5. 擴展Activity和擴展ListActivity有什麼區別?
- 6. postgres的擴展有什麼區別?
- 7. php_pdo_pgsql和php_pgsql PHP擴展之間有什麼區別?
- 8. PHP中的ADOdb和PDO有什麼區別?
- 9. MySQL,MySQLi和PDO有什麼區別?
- 10. Hybris中的擴展和添加Ons有什麼區別
- 11. opencart中的擴展和模塊有什麼區別?
- 12. php和html文件擴展名的區別是什麼?
- 13. .php和.php.inc文件擴展名之間的區別是什麼?
- 14. Flask中導入和擴展有什麼區別?
- 15. 擴展和包含在Linq中有什麼區別?
- 16. 導入和擴展在java中有什麼區別?
- 17. 在Maven中,擴展和插件有什麼區別
- 18. 目錄和文件沒有擴展名有什麼區別?
- 19. PHP中的 - >和::有什麼區別?
- 20. 繼承和類的擴展有什麼區別?
- 21. PDO類擴展和PHP
- 22. PHP imap擴展和其中一個郵件類有什麼區別?
- 23. List <Something>和List <?有什麼區別?擴展Something>?
- 24. <?有什麼區別?擴展Object>和<E extends Object>?
- 25. magento擴展和rest api有什麼區別?
- 26. 克隆和擴展骨幹事件對象有什麼區別?
- 27. 有什麼區別擴展類型和類型
- 28. LINQ查詢表達式和擴展方法有什麼區別
- 29. .db和sqlite3擴展之間有什麼區別?
- 30. 擴展和正常調用有什麼區別?
另見:http:php – mario
我已經讀了它,我只是不能使它們三者之間的連接(沒有雙關語意) –
我認爲*(如果我錯了,我肯定有人會糾正我),那麼mysqlnd是連接PHP到MySQL的實際驅動程序。 PDO和mysqli是通過mysqlnd將數據發送到mysql服務器的API。 – aynber