mysqli_query($conn, $sql) или $conn-›query($sql)

Я новичок в веб-разработке, в настоящее время я не использую никаких фреймворков.

До сих пор я использовал mysqli_query($conn, $sql) для отправки запроса на сервер MySQL.

Недавно я прочитал еще одну технику, в которой используется $conn - > query($sql).

Я знаю, что $conn->query($sql) — это ООП-способ отправки запроса, а mysqli_query($conn, $sql) — процедурный метод.

Я еще не изучил объектно-ориентированный PHP. Однако я собираюсь изучить его в ближайшее время, прежде чем переходить на фреймворк.

Может ли кто-нибудь рассказать мне о преимуществах использования $conn->query($sql) по сравнению с mysqli_query($conn, $sql)? Это более безопасно? Есть ли что-то еще?

Я знаю, что ООП лучше, чем процедурный, но я хотел бы знать основные преимущества с точки зрения безопасности (в основном)!


person Ashwin K Joseph    schedule 05.02.2017    source источник
comment
Та же разница, Орел или Решка, ваша монета стоит одинаково. Зависит от ваших потребностей. мое мнение. Процедурный для коротких простых запросов. ООП, когда вам нужно «работать» с вашими данными или в более длинных сценариях. Некоторые скажут, что процедурный подход лучше, чем ООП, и вам не следует использовать ООП. Я думаю, что ООП легче для человека отслеживать переменные, но мнение здесь не является ответом;) Ради безопасности взгляните на видимость: php.net/manual/en/language.oop5.visibility.php   -  person Louis Loudog Trottier    schedule 05.02.2017
comment
когда дело доходит до процедурного VS ООП, кроме видимости, я не могу думать. Может быть, более профессиональные пользователи добавят к нему   -  person Louis Loudog Trottier    schedule 05.02.2017
comment
Если вы хотите поговорить о безопасности внутри mysqli, я предлагаю вам ознакомиться с подготовленным заявлением. Это плюс: php.net/manual/en/mysqli.quickstart .prepared-statements.php И в основном обрабатывается в ООП   -  person Louis Loudog Trottier    schedule 05.02.2017


Ответы (2)


Ни один.

Три момента, чтобы понять это прямо:

  1. Там не так много, чтобы "учиться". Объект syntax настолько глуп, насколько кажется: просто стрелка для доступа к методу или свойству. Наверняка вы уже идете на это.
  2. Второй вариант позволяет вам меньше печатать:

    mysqli_query($mysqli, $query);
    vs.
    $mysqli->query($query); 
    
  3. В любом случае вы должны использовать PDO, а не mysqli

Я знаю, что ООП лучше, чем процедурный

Это просто не имеет значения здесь. Не путайте объектно-ориентированное программирование с синтаксисом объектов. Первый — очень сложная тема, на изучение которой уходят годы, и вы вряд ли скоро ее поймете. А синтаксис объекта — это просто синтаксис — ни больше, ни меньше. Ничего слишком сложного, о чем можно было бы беспокоиться, и никаких существенных преимуществ.

person Your Common Sense    schedule 05.02.2017

«ООП лучше, чем процедурное программирование» - я бы сказал, что это зависит. Если мы говорим о производительности, то да, ООП эффективнее и более организовано, чем процедурное программирование. Если вы создаете большой сложный проект, то ООП — это то, что вам нужно. Однако, если мы говорим о безопасности, то метод процедурного программирования так же безопасен, как и метод ООП. Особенно, если вы используете PDO. Когда вы используете PDO, вы используете именованные заполнители вместо того, чтобы передавать переменные непосредственно в запрос, что помогает предотвратить такие атаки, как SQL Injection. И если вы используете PDO, вам не нужно дезинфицировать ваши входные данные самостоятельно (устраняя дополнительное кодирование), потому что PDO позаботится об этом.

Я рекомендую вам начать обучение с PDO, потому что он соответствует стилям объектно-ориентированного программирования, поэтому, если вы начнете с него, вы Вы уже будете на шаг впереди, когда начнете писать код в OOPHP. Надеюсь, это поможет.

person Khairul Alam    schedule 05.02.2017