Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PHP and MySQL

136 views

Published on

PHP and MySQL
https://university.noveogroup.ru

Published in: Education
  • Be the first to comment

  • Be the first to like this

PHP and MySQL

  1. 1. PHP & MySQL Web Владимир Бобров
  2. 2. MySql, MySQLi, PDO MySql - устаревшее расширение, его не используем Выбираем в основном между MySQLi и PDO.
  3. 3. MySQLi vs PDO Основные отличия: поддержка процедурного интерфейса и поддержка асинхронных не блокирующих запросов в MySQli, и поддержка client-side prepared statements.
  4. 4. MySqli объектно-ориентированный и процедурный $mysqli = new mysqli(‘localhost’, ‘user’, ‘god’, ‘db_name’); $mysqli->close(); $mysqli = mysqli_connect(‘localhost’, ‘user’, ‘god’, ‘db_name’); $res = mysqli_query($mysqli, “SELECT * FROM table”);
  5. 5. PDO Расширение Объекты данных PHP (PDO) определяет простой и согласованный интерфейс для доступа к базам данных в PHP. Каждый драйвер базы данных, в котором реализован этот интерфейс, может представить специфичный для базы данных функционал в виде стандартных функций расширения
  6. 6. PDO продолжение PDO обеспечивает абстракцию (доступа к данным). Это значит, что вне зависимости от того, какая конкретная база данных используется, вы можете пользоваться одними и теми функциями для выполнения запросов и выборки данных. PDO не абстрагирует саму базу данных, это расширение не переписывает SQL запросы и не эмулирует отсутствующий в СУБД функционал. Если нужно именно это, необходимо воспользоваться полноценной абстракцией базы данных.
  7. 7. Подготовленные запросы в mysqli
  8. 8. Подготовленные запросы в PDO
  9. 9. Типы данных MySQLi • mysqli • mysqli_stmt • mysqli_result
  10. 10. Получение данных mysqli ● mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба ● mysqli_result::fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба ● mysqli_result::fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива ● mysqli_result::fetch_field_direct — Получение метаданных конкретного поля ● mysqli_result::fetch_field — Возвращает следующее поле результирующего набора ● mysqli_result::fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора ● mysqli_result::fetch_object — Возвращает текущую строку результирующего набора в виде объекта ● mysqli_result::fetch_row — Получение строки результирующей таблицы в виде массива ● mysqli_result::$field_count — Получение количества полей в результирующем наборе
  11. 11. Получение данных PDO ● PDOStatement::fetch — Извлечение следующей строки из результирующего набора ● PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора ● PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора ● PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта ● PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement ● PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице ● PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса ● PDOStatement::rowCount — Возвращает количество строк, модифицированных последним
  12. 12. Хранимые процедуры
  13. 13. Множественные запросы MySQL поддерживает наличие нескольких SQL предложений в тексте одного запроса. Пересылка на сервер нескольких выражений в одном запроса уменьшает количество клиент-серверных взаимодействий, но требует специальной обработки. Множественные запросы, или мультизапросы, должны запускаться функцией mysqli_multi_query(). Отдельные SQL предложения в мультизапросе отделяются точкой с запятой.
  14. 14. Множественные запросы
  15. 15. Active Records Пусть существует таблица в базе данных. Для данной таблицы создаётся специальный класс AR, являющийся отражением (представлением) таблицы, таким образом, что: ● каждый экземпляр данного класса соответствует одной записи таблицы; ● при создании нового экземпляра класса (и заполнении соответствующих полей) в таблицу добавляется новая запись; ● при чтении полей объекта считываются соответствующие значения записи таблицы баз данных; ● при изменении (удалении) какого-либо объекта изменяется (удаляется) соответствующая ему запись.

×