mysqli, ООП против процедурного - PullRequest
10 голосов
/ 02 июня 2011

Я только что видел это в первый раз.Я понятия не имел, что вы можете создать экземпляр класса mysqli, выполнив что-то вроде

new mysqli( $host, $username, $password, $db );

Это для меня совершенно новое ... Каждый учебник, который я видел в Интернете или в книгах при подключении к базе данных, делает что-то вроде этого:

$conn = mysqli_connect( $host, $username, $password, $db );

if ( !$conn ) {
    die( 'Sorry, could not connect');
}

Есть ли причина, по которой большинство учебников делают это процедурным способом?Даже в уроках, которые я видел при создании отдельного класса базы данных, скажите мне использовать код процедурного стиля ...

В чем разница с процедурой mysqli против oop?Есть ли?Нужно ли устанавливать какие-либо расширения или я могу просто начать использовать в своем коде?Полностью новичок здесь, так что не совсем уверен.

Кроме того, когда это хорошая идея использовать PDO против MySQL?Используется ли PDO чаще всего разработчиками, которые работают с крупномасштабными корпоративными приложениями?Или это просто вопрос предпочтений.

Спасибо за любую помощь ...

обучение php быстро вызывает привыкание ... Я просто хочу знать больше и больше.

Ответы [ 3 ]

11 голосов
/ 02 июня 2011

99% учебных пособий по PHP в Интернете устарели, пропагандируют ужасный код или написаны людьми, которые, вероятно, не должны учить PHP (и, как правило, все вышеизложенное) Вы должны найти горстку хороших .

Разработчики, в том числе и я, предпочитают PDO больше, чем mysqli. С одной стороны, он может обрабатывать гораздо больше баз данных, чем просто MySQL.

3 голосов
/ 18 октября 2015

Ответить на ваши вопросы с практической точки зрения

Есть ли причина, по которой большинство учебников делают это процедурным способом?

Достаточно сказать, что причины не связаны с технологией.

Какая разница с процедурой mysqli против oop? Есть ли?

номер

Нужно ли устанавливать какие-либо расширения

Нет (кроме самого mysqli, конечно).

Кроме того, когда рекомендуется использовать PDO?

Да. На самом деле PDO будет единственным разумным выбором.

Вы должны понимать, что набор функций mysqli - это просто низкоуровневый API, не предназначенный для использования как есть. Нужно реализовать оболочку на mysqli, а затем использовать методы этой оболочки. Хотя PDO уже является такой оболочкой , она предлагает помощь в выполнении многих задач. Я написал руководство по PDO , которое подчеркивает его преимущества и раскрывает некоторые суеверия, где, я надеюсь, вы найдете ответы на многие вопросы, которые у вас наверняка есть.

3 голосов
/ 02 июня 2011

Большинство mysqli_* функций являются псевдонимами объектных методов (PHP внутренне позволяет это легко с помощью макроса C, поэтому многие расширения используют этот подход).Но доступность также для ознакомления, поэтому пользователям старых функций mysql легче перейти на новый интерфейс.Использование ООП или процедурного интерфейса на самом деле просто стиль / предпочтение.

В настоящее время обычно предпочитают PDO, но он не предоставляет многих специфичных для mysql функций.Так что могут быть некоторые варианты использования для расширения mysqli.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...