MySQL vs MySQLi при использовании PHP [закрыто]



Что лучше, MySQL или MySQLi? И почему? Что я должен использовать?



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

635   6  

6 ответов:

Если вы посмотрите на Обзор Улучшенного Расширения MySQL, он должен рассказать вам все, что вам нужно знать о различиях между ними.

основные полезные функции:

  • объектно-ориентированный интерфейс
  • поддержка подготовленных заявлений
  • поддержка нескольких заявлений
  • сопровождение сделок
  • расширенные возможности отладки
  • встроенный сервер поддержка.

существует ручная страница, посвященная помощи в выборе между mysql, mysqli и PDO в

команда PHP рекомендует mysqli или PDO_MySQL для новой разработки:

рекомендуется использовать расширения mysqli или PDO_MySQL. Не рекомендуется используйте старое расширение mysql для новой разработки. Подробная матрица сравнения характеристик приведена ниже. Общая производительность всех трех расширений считается примерно одинаковой. Хотя производительность расширения вносит только часть от общего времени выполнения веб-запроса PHP. Часто воздействие как низко как 0.1%.

на странице также есть матрица функций, сравнивающая API расширения. Основные различия между mysqli и mysql API заключаются в следующем следует:

                               mysqli     mysql
Development Status             Active     Maintenance only
Lifecycle                      Active     Long Term Deprecation Announced*
Recommended                    Yes        No
OOP API                        Yes        No
Asynchronous Queries           Yes        No
Server-Side Prep. Statements   Yes        No
Stored Procedures              Yes        No
Multiple Statements            Yes        No
Transactions                   Yes        No
MySQL 5.1+ functionality       Yes        No

* http://news.php.net/php.internals/53799

существует дополнительная матрица функций, сравнивающая библиотеки (новый mysqlnd против libmysql) в

и очень тщательная статья в блоге на

Я отказался от использования mysqli. Он просто слишком нестабилен. У меня были запросы, которые разбивают PHP с помощью mysqli, но отлично работают с пакетом mysql. Также mysqli падает на столбцы LONGTEXT. Эта ошибка была поднята в различных формах, по крайней мере, с 2005 года и остается сломанным. Я бы честно хотел использовать подготовленные заявления, но mysqli просто недостаточно надежен (и никто, похоже, не беспокоится об этом). Если вы действительно хотите подготовленные заявления идут с ПДО.

MySQLi расшифровывается как MySQL improved. Это объектно-ориентированный интерфейс к привязкам MySQL,который упрощает использование. Он также предлагает поддержку подготовленных заявлений (которые очень полезно). Если вы находитесь на PHP 5, Используйте MySQLi.

Что лучше PDO; это менее жестокий интерфейс, а также предоставляет те же функции, что и MySQLi.

использование подготовленных операторов хорошо, потому что это исключает возможности SQL-инъекции; использование подготовленных операторов на стороне сервера плохо, потому что это увеличивает количество обходов.

для меня подготовленные заявления-это обязательная функция. точнее, привязка параметров (которая работает только с подготовленными операторами). это единственный действительно разумный способ вставить строки в команды SQL. я действительно не доверяю функциям "побега". соединение с БД является двоичным протоколом, зачем использовать ASCII-ограниченный субпротокол для параметров?

Comments

    Ничего не найдено.