Когда я должен использовать MySQLi вместо MySQL?

Может кто-нибудь уточнить для меня, какие преимущества и недостатки использования MySQLi вместо MySQL? Существуют ли ситуации, когда я не должен использовать MySQLi? Нужно ли мне настраивать свой сервер по-разному, чтобы использовать MySQLi? Например, мне нужно обновить Apache или PHP, чтобы я мог поддерживать MySQLi?

Ответы

Ответ 1

Причины, по которым вы должны использовать расширение MySQLi вместо расширения MySQL, много:

  • MySQLi дает вам подготовленные заявления - более безопасный способ отправки данных в MySQL и защиты от SQL-инъекции. Этого должно быть достаточно, чтобы всегда выбирать MySQLi через MySQL.
  • MySQLi позволяет использовать большинство функций MySQL.
  • MySQLi ориентирован на объект.
  • MySQLi поддерживает подготовленные операторы, транзакции и несколько операторов.
  • Старое расширение MySQL устарело от PHP 5.5.0

И есть и другие преимущества. Но главным образом, вы должны сосредоточиться на безопасности и stabiltity - и MySQLi дает вам именно это.

Ответ 2

Команда PHP отказывается поддерживать расширение mysql. Эта причина достаточно одна.

Все остальные причины не имеют большого смысла:

  • MySQLi дает вам подготовленные операторы - можно использовать старый mysql с ручным управлением plaeholders и получить еще более безопасный. Это само по себе должно остановить MySQL от бесполезной усталости.
  • MySQLi позволяет использовать большинство функций MySQL, о которых большинство пользователей PHP никогда не слышали.
  • MySQLi ориентирован на объекты - пара прямых рук может сделать старый mysql objec ориентированным в течение нескольких часов.
  • * Поддержка MySQLi

Итак, нет никаких преимуществ.
Если вы хотите согласиться с не устаревшим, но используемым расширением - перейдите к PDO.

Ответ 3

Если вы используете mysql > 4.1.3. Mysqli - это новый интерфейс для mysql в php. Цитата из http://www.php.net/manual/en/mysqli.overview.php

Что такое расширение PHP MySQL?

Это первоначальное расширение, предназначенное для разработки PHP-приложений, взаимодействующих с базой данных MySQL. Расширение mysql обеспечивает процедурный интерфейс и предназначено для использования только с версиями MySQL старше 4.1.3. Это расширение можно использовать с версиями MySQL 4.1.3 или новее, но не все последние функции сервера MySQL будут доступны.

Note:

If you are using MySQL versions 4.1.3 or later it is strongly recommended that you 
use the mysqli extension instead.

Ответ 4

Всегда, если это возможно.

Возможно, MySQLi не поддерживается вашей установкой PHP. Однако большинство хостинг-провайдеров поддерживают MySQLi.

Ответ 5

Если вы не используете старую версию базы данных MySQL (до 4.1.3) или требуете некоторой функциональности, еще не включенной в MySQLi (я думаю, что есть одна из двух функций, которые не были перемещены), тогда придерживайтесь MySQLi когда вы когда-либо можете.