Люди продолжают упоминать, что я должен использовать PDO в своем PHP при работе с MySQL, о которых я никогда раньше не слышал.
Что такое PDO? Как он используется и каковы плюсы и минусы?
Благодаря,
Рассмотрим PDO как встроенный класс, который поставляется в комплекте с PHP, чтобы упростить взаимодействие с вашей базой данных. при разработке PHP-приложения вам нужно позаботиться о множестве вещей, таких как установить соединение, создать запрос, получить результат преобразования ресурса в массив, избежать MySQL Injection с помощью mysql_real_escape_string()
теперь это много вещей, которые нужно позаботиться как минимум, но не последний, рассмотрим ситуацию, когда вы хотите перейти от mysql к mysqli или MSSQL, для чего вам нужно пройти каждую функцию и изменить каждую строку кода в соответствии с потребностями. PDO устранит всю эту проблему, предоставив один централизованный класс.
Чтобы разработать, посмотрите ниже код.
установить соединение с MySQL с помощью PDO:
$dbh = new PDO('mysql:host='.HOST.';dbname='.DATABASE,USERNAME,PASSWORD);
вот и все, соединение установлено, и вы можете повторно использовать $ dbh для выполнения запросов, например, чтобы получить результат от пользователя таблицы, вам просто нужно две строки кода.
$sth = $dbh->query('SELECT id,name,email FROM users'); $user = $sth->fetch(PDO::FETCH_ASSOC);
Теперь $user
будет иметь все значения, выбранные как ассоциативный массив.
Чтобы вставить значение в базу данных, вам необходимо сделать следующее.
$sth = $dbh->prepare('INSERT INTO users(name,email) VALUES(:name, :email)'); $sth->bindParam(':name', 'My Name'); $sth->bindParam(':email', 'email@email.com'); $sth->execute();
Вышеприведенный код использует именованный placeholder, таким образом PDO будет держать вас в безопасности от многих уязвимостей, поскольку он будет держать вас подальше от MySQL Injection. чтобы вы начали изучать этот урок по нетртуту, они объяснили это очень красиво, эта статья объяснит все ваши дилеммы в отношении PDO
http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/
http://php.net/manual/en/book.pdo.php
Расширение PHP Data Objects (PDO) определяет легкий, согласованный интерфейс для доступа к базам данных на PHP.
PDO обеспечивает уровень абстракции доступа к данным, что означает, что независимо от используемой вами базы данных вы используете одни и те же функции для выдачи запросов и получения данных. PDO не обеспечивает абстракцию базы данных; он не переписывает SQL или не эмулирует отсутствующие функции. Вы должны использовать полномасштабный слой абстракции, если вам нужен этот объект.
PDO – это объектно-ориентированный класс для составления и выполнения запросов MySQL. Это может показаться добавленным уровнем сложности, но PDO фактически позволяет вам писать запросы более просто на вашем php и программировать записи запросов (другой код строит различные строки вашего запроса для вас).
PDO также заботится о многих проблемах безопасности, таких как экранирование ваших запросов sql. Вы никогда не будете делать ничего из этого, если не используете слой абстракции базы данных, например PDO, и даже если попытаетесь, вы можете легко забыть или сделать это неправильно.
Если вас не интересует безопасность (например, SQL-инъекция ), и вы можете написать естественные запросы MySQL, которые вам нужны, вам не нужно беспокоиться об этом. Изучение этого может упростить работу в будущем, когда вы работаете над более структурированными проектами, использующими фреймворки.