Они, похоже, одно и то же, и все же разные. Я не знаю, какой из них: Я знаю, что мы можем использовать PDO как new PDO()
и использовать методы prepare()
и query()
, чтобы извлекать данные из базы данных. Итак, если это PDO
, упомянутый в списке расширений, то что именно (в терминах laymans) есть pdo_mysql и mysqlnd?В чем разница между расширениями Mysqlnd, PDO и PDO_Mysql в php?
ответ
Вам необходимо PDO_Mysql использовать базу данных mysql с PDO. Это водитель.
Mysqld - это сервер Mysql, к которому вы обращаетесь с использованием PDO или mysqli.
Mysqlnd - это библиотека/драйвер для связи с сервером Mysql, и PDO, и mysqli используют его.
Если вы хотите ответить на этот вопрос, сделай это правильно. Показывать цитаты из официальных документов. Кроме того, OP спрашивает о 'mysqlnd' - НЕ' mysqld'. То, что вы заявили до сих пор, в лучшем случае является маргинальным и может быть просто комментарием. –
PDO сам по себе является database abstraction layer, предлагаемый PHP. Это не может означать совсем то, что вы думаете, что делает, но 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. Это был драйвер по умолчанию для всех расширений MySQL (например, pdo_mysql
) с версии PHP версии 5.4, поэтому, если вы используете поддерживаемую версию PHP, вы, вероятно, используете ее. Но он работает за кулисами, просто обрабатывая общение. Вы не будете использовать функции mysqlnd
. Из «Что не» части the mysqlnd
documentation:
Хотя MySQL Native Driver написан как расширение PHP, важно отметить, что она не обеспечивает новый API на PHP программиста. API-интерфейсы программистов для подключения к базе данных MySQL предоставляются расширением MySQL, mysqli и PDO MYSQL. Эти расширения теперь могут использовать службы MySQL Native Driver для связи с сервером MySQL. Поэтому вы не должны думать о Native Driver MySQL как API.
- 1. В чем разница между php_pdo_pgsql и php_pgsql расширениями PHP?
- 2. (PHP PDO) В чем разница?
- 3. В чем разница между MySQLi и PDO?
- 4. Разница между сборками и расширениями
- 5. В чем разница между PDO :: FETCH_CLASS и PDO :: FETCH_INTO
- 6. В чем разница между расширениями .db и sqlite3?
- 7. В чем разница между расширениями и директивами php.ini?
- 8. В чем разница между расширениями Google Chrome и надстройками Firefox?
- 9. разница между расширениями файлов?
- 10. В чем разница между sqlite3 и pdo_sqlite
- 11. В чем разница между MySQL, MySQLi и PDO?
- 12. PHP7 и pdo_mysql
- 13. В чем разница между. = И + = в PHP?
- 14. В чем разница между `/` и `\` в php
- 15. В чем разница между 'и "в PHP
- 16. PDO установка - включить pdo_mysql
- 17. В чем разница между расширениями ядра Selenium и расширениями Selenium IDE?
- 18. В чем разница между PHP и включать?
- 19. Php: В чем разница между | и || Оператор
- 20. В чем разница между PHP и ASP?
- 21. В чем разница между PHP и Java?
- 22. разница между phpmyadmin и php PDO
- 23. Ruby: В чем разница с этими расширениями?
- 24. Разница между компонентами, модулями, расширениями и плагинами в Joomla
- 25. В чем разница между «и»?
- 26. В чем разница между `{}` и `[]`?
- 27. В чем разница между == и ===?
- 28. В чем разница между «+» и «\ +»?
- 29. В чем разница между + = и = +?
- 30. В чем разница между/* ... */и/** ... */
См. Также: http://php.net/manual/en/mysqlinfo.api.choosing.php и http://php.net/manual/en/mysqlinfo.library.choosing.php – mario
Я прочитал это на самом деле, я просто не могу сделать связь (не каламбур) между тремя из них –
Я * думаю * (и я уверен, что кто-то исправит меня, если я ошибаюсь), что mysqlnd является фактическим драйвером, который соединяет PHP с mysql. PDO и mysqli - это API, которые отправляют данные через mysqlnd на сервер mysql. – aynber