2015-12-25 2 views
0

Я буквально только начал касаться MySQLi от старого устаревшего MySQL, и мне недавно сказали, что я должен узнать PDO над MySQLi. Я не уверен, что делать! Кто-то поможет мне!Что лучше всего изучить MySQLi или PDO?

После долгого поиска в Интернете ответов, я бы хотел увидеть и понять, что лучше.

ответ

5

Возможный дубликат! Но это мой быстрый ответ.

С недавнего обновления PHP, 7.0, старая функция MySQL была удалена из PHP. Это означает, что большинству людей необходимо будет перейти на новейшие две функции: MySQLi и PDO. Я дам очки по обеим функциям, а также дам свои личные мысли в конце.

MySQLi

MySQLi по сути является улучшение теперь устаревшей mysql_* функции PHP; однако эта новая функция теперь поддерживает подготовленные заявления.

PDO

объектов PHP данных, также известные как PDO, общая база данных уровень абстракции, который поддерживает MySQL, а также множество других баз данных. Он также поддерживает подготовленные заявления.

What are prepared statements?

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

Лично я использую PDO из-за его природы. Но любая из двух функций, указанных выше, является предпочтительной, поскольку они поддерживают подготовленные заявления.

+1

Я думаю, что плохое использование PDO, из того, что я слышал, он работает лучше всего! Спасибо – GoAerox

+1

Да, я думаю, что это путь!Лучше всего научиться этому в начале, чтобы начать изучать несколько разных функций MySQL. – Lachie

+0

Ответ не имеет прямого или косвенного ответа на вопрос OP. Это объясняет только то, что такое MySQLi и PDO. (ОП спрашивает, какой из них лучше). –

2

Я бы предложил PDO. Самая большая причина: PDO поддерживает несколько баз данных. Но почему вы должны думать о нескольких базах данных, если вы изучаете только mysql сейчас? Здесь могут быть следующие причины:

  1. Возможно, вы захотите узнать mysql сейчас, но позже вас также могут заинтересовать другие базы данных. Например, вы решили использовать oracle db для одного из ваших будущих проектов или любого проекта клиента. Затем вам нужно научиться использовать специальные функции оракула, такие как oci_connect(), oci_execute() и т. Д. Но если вы сначала изучили PDO, вам не нужно изучать новые функции PHP для его реализации.

  2. Могут быть случаи, когда вам необходимо изменить свою базу данных для повышения производительности/безопасности или любых других целей, которые могут потребоваться для вашего проекта. Если вы находитесь в PDO, вам нужно будет только обновить несколько строк SQL, которые могут отличаться между двумя языками (это не так много). Но если у вас есть функции mysqli_*, вам нужно будет обновить все функции PHP, которые вы использовали для целей базы данных.

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