Почему 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, MySQLi, php, разработка сайтов, MySQL




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 1. Введение в WPF, основные концепции
Внешний вид radiobutton
Рисование дуги на C#