Определение PDO

Содержание

Слайд 2

Подключение через интерфейс PDO

Подключение довольно простое, за тем исключением, что теперь одной

Подключение через интерфейс PDO Подключение довольно простое, за тем исключением, что теперь
строкой необходимо сразу указать, к какому типу базы данных вы подключаетесь, имя хоста, а также имя базы данных.
Формат вот такой: тип_базы_данных:host=имя_хоста;db=name

Если же в SQL выражении вы допустили ошибку, в PDO есть специальные функции:
errorCode() – возвращает номер ошибки, и
errorInfo() – возвращает массив, в котором, как номер ошибки, так и текст описания
Запросы непосредственно можно делать двумя функциями: exec() и query()
Отличие их состоит в типе возвращаемого результата, exec возвращает количество затронутых в результате выполнения запроса строк, а вторая, возвращает результат запроса в объекте PDOStatement, о нем поговорим чуть ниже. См. пример-1

Слайд 3

Подготовленные выражения

Подготовленные выражения очень похожи на обычные SQL запросы, но имеют некоторые

Подготовленные выражения Подготовленные выражения очень похожи на обычные SQL запросы, но имеют
преимущества. Во-первых имеют большую скорость выполнения, а во-вторых являются более надежными с точки зрения безопасности, так как все параметры передаваемые в них, автоматически экранируются от всевозможных инъекций.
Они имеют весомое преимущество в скорости, при выполнении многократных одинаковых запросов, чем если каждый раз составлять запрос заново. Также экономится траффик между приложением и базой данных.
PDO предоставляет удобные функции для работы с подготовленными выражениями. В случае, если выбранный тип базы данных не поддерживает работу с подготовленными выражениями, PDO просто будет эмулировать их работу своими методами.
И так для начала создадим подготовленное выражение, это делается функцией Prepare()
В качестве параметра она принимает SQL запрос, но в нем, вместо значений, которые необходимо менять, ставятся псевдо переменные, которые могут быть в виде знака вопроса(?), либо имени псевдо переменой, которое начинается с двоеточия (:)
$sth1 = $db->prepare(“SELECT * FROM `testing` WHERE id=:id”);
$sth2 = $db->prepare(“SELECT * FROM `testing` WHERE id=?”);
В зависимости от того, как вы определите переменную, будет зависеть ваша дальнейшая работа.
Если вы определили переменные знаком вопроса, то потом, в функцию execute передайте массив значений, в той, последовательности, в которой стоят переменные.
Если же вы обозначили переменные именами, то надо будет назначить каждой переменной значение посредством функций:
bindValue() – присваивает псевдопеременной значение
bindParam() – связывает псевдопеременную с настоящей переменной, и при изменении настоящей переменной, не нужно больше вызывать никаких дополнительных функций, можно сразу execute()

Слайд 4

Примеры

1ый вариант:

2ой вариант:

Примеры 1ый вариант: 2ой вариант:

Слайд 5

Примеры

Второй вариант можно записать еще проще, связав псевдопеременную с реальной:

Тут же необходимо

Примеры Второй вариант можно записать еще проще, связав псевдопеременную с реальной: Тут
добавить, что очень желательно (чтобы не возникало лишних ошибок) третьим параметром указывать тип переменной. У меня лично, в случае отсутствия типа переменной, возникали ошибки в операторе WHERE, так как он считал переменную текстом, а не числом.
$sth3->bindParam(‘:id’,$id, PDO::PARAM_INT);
$sth3->bindParam(‘:id’,$id, PDO::PARAM_STR);
Еще одним из очень приятных плюсов использования таких подготовленных выражений, это экранирование переменных. Перед подстановкой в процедуру все переменные экранируются и никакие SQL инъекции не страшны.

Слайд 6

Транзакции

Транзакция – это совокупность запросов базу данных, которые должны быть обязательно выполнены

Транзакции Транзакция – это совокупность запросов базу данных, которые должны быть обязательно
все. Если какой-либо запрос не выполнен или выполнен с ошибкой, то транзакция отменяется и изменений данных в базе не происходит.
Это нужно, чтобы гарантировать сохранение целостности данных при нескольких запросах. например при переводе денежных средств со счета на счет.
Чтобы выполнить транзакцию в PDO необходимо перейти в режим ручного подтверждения запросов.
Чтобы выключить режим автоподтверждения, выполняем команду:
$db->beginTransaction();
После этого выполняем столько запросов к базе данных сколько необходимо сделать в этой транзакции. И только после того как все запросы будут выполнены, Вы можете подтвердить транзакцию функцией $db->commit();
или отменить транзакцию $db->rollback(); Тут еще следует заметить, что не все типы таблиц поддерживают транзакции, требуется ипользовать таблицу InnoDb вместо стандартной MyISAM. см. Пример-2

Слайд 7

Проблема при разработке ПО

Многие разработчики очень сильно усложняют код и потом его

Проблема при разработке ПО Многие разработчики очень сильно усложняют код и потом
дорого обслуживать и развивать или приходится делать глобальный рефакторинг, что довольно не выгодно для бизнеса. Основная цель — это выполнить проект в сроки и в дальнейшем развивать его вкладываясь в запланированный бюджет. Один из важных критериев качества кода — это его простота. Но как измерять простоту? Один из вариантов — это рассчитать кол-во элементов системы. Чем меньше элементов тем система проще. 

Слайд 8

Что такое архитектура программы

Архитектура - это базовая организация системы, воплощенная в ее

Что такое архитектура программы Архитектура - это базовая организация системы, воплощенная в
компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы.

Другими словами

Компоненты кода («на какие части разбить»)
Структура кода («где, что будет лежать»)
Отношения между компонентами

Слайд 9

Что такое хороший код

Решающий поставленную задачу
Делающий это наиболее очевидным образом
Экономящий ресурсы
Расширяемый
Аккуратный

Что такое хороший код Решающий поставленную задачу Делающий это наиболее очевидным образом Экономящий ресурсы Расширяемый Аккуратный

Слайд 10

Модель MVC

Модель MVC

Слайд 11

Модель MVC

Модель MVC