Школа Информационной Безопасности в Твери от Сodeby

Мы открыли свою оффлайн школу Информационной Безопасности в Твери от Сodeby. Учим без шаблонов и занудства 🙂 Подробнее ...


Хранимые процедуры MySQL (часть 2)

В этой части статьи допишем начатую в предыдущей статье хранимую процедуру и научимся создавать хранимые mysql функции.

И так нам осталось указать значение для последней переменной PostID. В качестве значения ей будет присвоен результат, который вернёт функция GetPostID, которую сейчас и создадим.

Создание функции

Для начала закрываем текущую форму создания процедуры, нажав на кнопку c надписью Go. Затем в этом же окне снова нажимаем на надпись Add routine, появится знакомая форма, заполним её.

Так же можно указать дополнительные параметры:

Is deterministic — детерминированная функция всегда возвращает один и тот же результат при одинаковых входных параметрах иначе она является не детерминированной. В нашем случае ставим галочку.

Definer и Security type параметры безопасности, в данном примере оставим их без изменений.

SQL data access имеет несколько значений:

NO SQL — не содержит sql.

Contains SQL — содержит встроенные sql функции или операторы, которые не читают, не пишут и не изменяют данные в базе данных. Например, установка значения переменной: SET name = значение;

READS SQL DATA — только чтение данных, без любой модификации данных, указывается для запроса SELECT.

MODIFIES SQL DATA — изменение или внесение данных, в базу данных, указывается для запросов: INSERT, UPDATE, но при этом не должен присутствовать запрос SELECT.

В нашей функции используется запрос SELECT, укажем READS SQL DATA.

Comment комментарий.

После того как все поля заполнены, нажимаем на кнопку с надписью Go.

форма

Возвращаемся на вкладку Routines и отредактируем нашу процедуру, нажав на кнопку edit.

edit

Присвоим переменой PostID в качестве значения результат, который вернёт функция GetPostID.

В результате окончательное тело процедуры будет таким

Остальные поля формы оставим без изменений, нажимаем на кнопку Go. Процедура создана.

Так же можно установить значения для одной или нескольких переменных в результате выполнения запроса. Например, поля: Автор, почта и id пользователя хранятся в таблице wp_users.

таблица wp_users



Зная это можно установить значения для этих переменных следующим образом:

Вызов хранимой процедуры

Осталось протестировать созданную процедуру. Для начала добавим комментарий к любой статье, одобрим его и проверим, чтобы он отображался на странице.

добавленный комментарий

Затем узнаем id добавленного комментария

id комментария

Возвращаемся на вкладку Routines и нажимаем на надпись Execute

выполнить

Появится форма

параметры процедуры

Указываем значения передаваемых параметров: текст ответа и id комментария, после чего нажимаем на кнопку с надписью Go.

установка значений

Если ошибок нет, то открываем страницу и смотрим на результат.

сообщение об отсуствие ошибок

добавленный ответ

Второй способ выполнить процедуру на сервере.

Открываем вкладку SQL

вкладка SQL

С помощью оператора CALL производим вызов нашей процедуры

вызов процедуры

Если ошибок нет, то должны увидеть новый комментарий на странице.

ошибок нет

добавленный новый ответ

Вызов хранимой процедуры на клиенте

Читайте также:



Похожие темы

Включение в WordPress возможности редактировать и ... Вторая вещь, которая меня поражает в WordPress — это невозможность даже для зарегистрированных пользователей редактировать свои комментарии (п...
Новости софта от 26 сентября 2014 года (CKEditor, ... Обычно информация по LibreOffice передвигается в самый низ новости, т. к. эта программа не имеет прямого отношения к Интернету и сетевым технол...
Unable to convert MySQL date-time value to System.... Ошибка: Unable to convert MySQL date/time value to System.DateTime В комментариях многие жалуются, что у них при работе с базой данных Mysql возникае...
Получение данных из базы данных Mysql с помощью ме... Mysql метод ExecuteReader В этой статье хочу показать на простом примере, как можно получить данные из базы данных Mysql с помощью метода ExecuteRead...
Поиск уязвимостей в WordPress с WPHunter... Приветствую, codeby.net! В этой статье я хочу обратить Ваше внимание, на свежий инструмент, позволяющий обнаружить имеющиеся уязвимости в CMS Wordpr...