Почему MySQLi лучше MySQL?
PHP и MySQL разработчики сталкиваются с тремя PHP и API-интерфейсами для MySQL. Это может сбить с толку начинающего программиста. С середины 2012 года разработчики PHP предлагают не использовать старое PHP MySQL расширение, чтобы исправить ситуацию. Всем, активно занимающимся разработкой программного обеспечения и сайтов, просто жизненно необходимо заменить обычный MySQL на MySQLi или PDO_MySQL. Почему же MySqli лучше MySQL? Именно об этом и поговорим ниже в данной статье.
История и особенности
PHP и MySQL идут рука об руку. Оригинальный MySQL API разрабатываются примерно с PHP 2.0. Многие веб-сайты до сих пор могут служить примерами работы оригинального MySQL API. Это удивительно, учитывая сравнение функциональности трех API, PHP MySQL.
Сравнительная характеристика по API | |||
---|---|---|---|
ext/mysqli | PDO_MySQL | ext/mysql | |
PHP версия введена | 5.0 | 5.1 | 2.0 |
Год ввода | 2003 | 2005 | Прошлый век |
В комплекте с PHP 5.х | Да | Да | Да |
Состояние разdития | Активно | Активно | Только поддержка |
Добавление функций | Все новое, флагманское |
Все новое, учитывая, что подходит для PDO |
Ничего нового с 2006 |
Жизненный цикл | Активно | Активно | Объявлено продолжительное устаревание |
Рекомендация для новых проектов | Да | Да | Нет |
ООП интерфейс | Да | Да | Нет |
Процедурный интерфейс | Да | Нет | Да |
API поддерживает неблокирующие, асинхронные запросы с mysqlnd | Да | Нет | Нет |
Постоянные соединения | Да | Да | Да |
API поддерживает кодировки | Да | Да | Да |
API поддерживает подготавливаемые запросы на стороне сервера | Да | Да | Нет |
API поддерживает подготавливаемые запросы на стороне клиента | Нет | Да | Нет |
API поддерживает хранимые процедуры | Да | Да | Нет |
API поддерживает несколько инструкций | Да | Большинство | Нет |
AAPI поддерживает транзакции | Да | Да | Нет |
Транзакциями можно управлять с помощью SQL | Да | Да | Да |
API поддерживает протокол SSL | Да | Да | Нет |
API поддерживает сжатие | Да | Да | Да |
Поддерживает всю функциональность MySQL 5.1 | Да | Большинство | Нет |
Программные особенности
Список программных особенностей.
ext/mysqli | PDO_MySQL | ext/mysql | |
---|---|---|---|
Производительность | тенденция выше среднего | средняя | ниже среднего |
Фактор безопасности | хорошо | хорошо | ниже среднего |
Возможность пропустить ошибку | низкая | средняя | выше среднего |
Вопросы производительности
Все три PHP API для MySQL-это крошечные обертки над C вокруг базовой библиотеки C клиент-сервер. Это библиотека, лежащая в основе клиент-сервер C, который делает большую часть работы. При одной и той же команде, выполненной с использованием одной и той же функции можно ожидать, что все интерфейсы API, покажут одинаковую производительность. Различные же функции имеют разные характеристики.
Безопасность: Шифрование/SSL
MySQL поддерживает безопасные соединения между клиентами и клиентами MySQL и сервером с использованием протокола Secure Sockets Layer (SSL). И MySQLi и Pdo_Mysql имеют функцию соединения с SSL. Таким образом, пользователи PHP MySQL может использовать SSL для своего бизнеса.
Но, MySQL не позволит вам установить параметры конфигурации, необходимые для SSL шифрованного подключению. Например. попробуйте такой анализатор сетевых протоколов как Wireshark и посмотрите на любое подключение к обычной MySQL - вы сможете извлечь оттуда любую информацию.
Безопасность: инъекции SQL
Конечно, можно разработать пуленепробиваемый веб-приложение поверх MySQL, но это требует навыков и всегда есть возможность ошибки. Подробнее о защите от SQ-инъекций смотрите в этом материале.
Этот обзор является неполным, но может вам дать хотя бы первоначальное представление о разнице между MySQL, MySQLi и PDO_MySQL. В любом случае лично я рекомендую использовать современные инструменты для разработки веб сайтов.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.