В пхп есть два способа работать базами данных:
1) Через специализированные расширения под конкретную бд.
2) Через абстрактный слой -- это дает возможность мигрировать на продукт нового поставщика БД без серйозного изменения кода.
Абстрактные слои:
DBA -- абстркция для беркли подобных баз данных (не реляционных, у них все храниться хешом ключ-значение, это чато движки БД -- тип таблиц(данный тип уже не поддреживается в MySQL 5.1 и выше))
ODBC -- приложение-посредник разработанное макрософтом, оно не использует драйверов БД (клиент, разработанный поставщиком БД), просто много поставщиков предоставили такой интерфейс доступа к их серверам. Он выступает как клиент не от поставщика БД.
PDO -- это расширение не является клиентом к серверу как таковым, оно просто интегрируется со стандартными клиентами поставщиков БД. По этому оно производительнее чем ODBC. Если ODBC посредник между php и сервером, то PDO является посредником между php и оригинальным клиентом, а оригинальный клиент и сервер старые знакомые, поэтому взаимопонимание между ними происходит быстрее чем между ODBC и сервером. Поскольку это не чистый абстрактный слой, то в его интерфейсе есть гибкость -- конктретный драйвер(клиет) может предоставлять свои специфические функции. Но обычно они не значительные и мигрирование на новую базу данных происходит достаточно быстро, с небольшими изменениями в коде. PDO эмулирует только одну вещь, если она не поддерживается поставщиком БД -- подготовленные выражения.
Комментариев нет:
Отправить комментарий