Что лучше использовать для запросов в базы данных: внешние библиотеки или нативные функции?
Программирую на php и не знаю что лучше использовать для запросов в бд. Использовать стандартные решения встроенные в язык или использовать библиотеки? Если да, то какие?
Ответы (2 шт):
Для понимания происходящего, конечно лучше поработать со встроенными. Это MySQLi (сам модуль лучше чтоб был mysqlnd - в нём чуть больше плюшек) и PDO_MYSQL. У каждого варианта свои плюсы и минусы. Всплывут в процессе освоения.
А библиотеки-обертки позволят сделать из любой таблицы объект и обращаться к его свойствам и методам, а под капотом он сам будет формировать нужные запросы к бд. Кроме того, как утверждают пользователи этих фреймворков, отпадает необходимость в защите от SQL-инъекций и всяких других сложностей.
Обратите внимание на Doctrine, её тут хвалили.
Мой личный подход - использовать собственные библиотеки-обёртки с известным мне поведением и возможностью управлять логикой при необходимости.
В целом, какой-то специальный ответ на этот вопрос не требуется.
Начинающим рекомендуется использовать встроенные средства, просто чтобы понимать, как происходит взаимодействие с БД на базовом уровне, плюс шлифовать SQL.
Между встроенными библиотеками разницы особой нет, единственное, чего не принципиально не умеет mysqli - это именованные плейсхолдеры, без которых можно обойтись. Плюс PDO предоставляет унифицированный интерфейс к разным БД, но это в свою очередь важно в основном при написании библиотек. В целом, интерфейс обеих осваивается за 10 минут.
А с библиотеками всё просто: в какой-то момент писать одно и то же надоедает, и уже сам начинаешь искать (или писать) библиотеку, которая сокращает рутинные операции. Или, как вариант - начинаешь использовать фреймворк, и тогда без вариантов переходишь на использование его встроенной библиотеки для работы с БД.