Что лучше, MySQL или MySQLi? И почему? Какой я должен использовать?
Я имею в виду лучше не только с точки зрения производительности, но и любой другой соответствующей функции.
Если вы посмотрите на Обзор улучшенных расширений MySQL , он должен рассказать вам все, что вам нужно знать о различиях между ними.
Основные полезные функции:
mysql_*()
сейчас устарела и будет удалена в ближайшее время. Вы не должны использовать его для нового кода.На странице руководства, посвященной выбору между MySQL, MySQL и PDO,
Команда PHP рекомендует mysqli или PDO_MySQL для новой разработки:
На странице также имеется матрица функций, сравнивающая API расширения. Основные различия между mysqli и mysql API заключаются в следующем:
* http://news.php.net/php.internals/53799
Существует дополнительная функциональная матрица, сравнивающая библиотеки (новый mysqlnd против libmysql) в
и очень тщательная статья в блоге
источник
Я отказался от использования MySQL. Это просто слишком нестабильно. У меня были запросы, которые приводили к краху PHP с использованием mysqli, но прекрасно работали с пакетом mysql. Также mysqli падает на столбцах LONGTEXT . Эта ошибка была поднята в различных формах по крайней мере с 2005 года и остается сломанной . Честно говоря, я хотел бы использовать подготовленные утверждения, но mysqli просто недостаточно надежен (и, похоже, никто не пытается его исправить). Если вы действительно хотите, чтобы подготовленные заявления шли с PDO.
источник
MySQLi расшифровывается как MySQL. Это объектно-ориентированный интерфейс для привязок MySQL, который упрощает использование. Он также предлагает поддержку подготовленных заявлений (которые очень полезны). Если вы используете PHP 5, используйте MySQLi.
источник
Что лучше, это PDO; это менее гибкий интерфейс, а также предоставляет те же функции, что и MySQLi.
Использование подготовленных операторов хорошо, потому что это исключает возможности внедрения SQL; использование подготовленных операторов на стороне сервера плохо, потому что это увеличивает количество обращений.
источник
для меня готовые заявления - обязательная особенность. точнее, привязка параметров (которая работает только для подготовленных операторов). это единственный действительно разумный способ вставлять строки в команды SQL. Я действительно не доверяю «экранирующим» функциям. соединение с БД - это двоичный протокол, зачем использовать ограниченный ASCII-протокол для параметров?
источник