@uranus235

Что мне использовать: mysql или mysqli?

Начал пользоваться mysql уже давно, а сейчас начал практиковать mysqli. Впечатления: это ад, посаны! Мне гораздо легче дается mysql, дам нет таких заморочек типа закрытия запросов, подготовленные запросы и т.д.

Мне стоит использовать то, что я умею и люблю, или все-таки перейти на mysqli?
  • Вопрос задан
  • 2286 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
НИ ТО НИ ДРУГОЕ

Впечатления: это ад, посаны!

Истину глаголешь.
Потому что mysqli не предназначена для использования в коде напрямую. А только через более высокоуровневый враппер. Сама по себе это низкоуровневая либа, которая обеспечивает доступ ко всем самым мелким настройкам драйвера. Именно поэтому она так многословна и неудобна. И именно поэтому надо на её основе обязательно лепить враппер.

С другой стороны, старая mysql - ТОЖЕ низкоуровневая либа, и тоже НЕ ДОЛЖНА использоваться в коде напрямую, а только как основа для враппера. К тому же она официально устарела.

В общем, у тебя два варианта:
  • Либо использовать PDO, который является более высокоуровневой либой-недовраппером. Как пользоваться, написано здесь: Как работать с PDO?
  • Либо, если хочешь все-таки базироваться на mysqli - использовать готовый враппер SafeMySQL, с которым все ужасы уйдут в прошлое, а код сократится в 10 раз
А САМЫЙ лучший вариант - это перестать гонять запросы из кода напрямую, а вместо этого освоить уже какой-нибудь фреймворк и использовать для работы с базой ORM
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Используйте то что умеете и любите. Можно еще на php4 откатиться, зачем вам это ООП, late static binding... А еще никогда, никогда не экранируйте вывод. Это тормозит генерацию страницы. И всегда все пишите с нуля.

mysql_* расширение deprecated, то есть использовать его не стоит. В PHP7 вообще не будет оного. Только mysqli/pdo. Prepared statements нужны для предотвращения sql инъекций. И опять же вы можете просто воспользоваться каким doctrine/dbal.
Ответ написан
azrail_dev
@azrail_dev
О Mysql на сайте php.net
Это расширение не рекомендуется использовать при написании нового кода. Вместо него используйте mysqli или PDO_MySQL.
Ответ написан
zooks
@zooks
Frontend
Перейти на mysqli нужно было еще вчера (когда модуль mysql был объявлен устаревшим). Причем непонятно что в нем может не нравиться в сравнении с mysql?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы