От автора: разрабатывая веб-приложения, зачастую, для хранения контента и различной системной информации используются таблицы базы данных. И, как Вы знаете, для работы с базой данных необходимо составить SQL запрос, и соответственно выполнить его на сервере базы данных, для получения желаемого результата. При этом, процесс составления запроса – это достаточно рутинная работа, которая отбирает значительное количество времени и требует внимания, если Вы работаете с большим количеством полей в таблицах. Поэтому в данном уроке я хотел бы представить Вашему вниманию простую, но в тоже время функциональную библиотеку под названием Medoo, которая значительно упрощает взаимодействие с базой данных и избавляет веб-разработчика от необходимости составления SQL запросов. Данный урок – это знакомство с medoo как с удобным инструментом для работы с базой данных.
Итак, знакомство с Medoo, мы начнем, традиционно с установки. Установить библиотеку можно двумя способами – вручную, и автоматически.
Важное замечание: библиотека Medoo PHP, использует в своей работе PDO, а значит Перед началом работы, Вы должны убедиться, что в Вашем интерпретаторе языка PHP, подключено расширение PDO для интересующей системы управления базами данных.

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!Ручной способ установки Medoo
Для ручной установки необходимо перейти на официальный сайт библиотеки Medoo.
Затем, используя ссылку “Download”, необходимо скачать архив с последней актуальной версией библиотеки в каталог Вашего проекта (сайта или скрипта). В полученном архиве, содержится файл medoo.php – это и есть интересующая нас библиотека. Теперь необходимо только лишь подключить данную библиотеку к Вашему проекту:
1 |
require "medoo.php"; |
На этом ручная установка завершена.
Автоматическая установка Medoo
Автоматическая установка Medoo, предусматривает, использование инструмента Composer. Для этого необходимо открыть командную строку, перейти в каталог с проектом и выполнить команду.
1 |
composer require catfan/Medoo |
Далее, необходимо подключить файл autoload.php, который содержится в каталоге vendor (данный каталог был сгенерирован Composer).
1 |
require "vendor/autoload.php"; |
На, этом автоматическая установка Medoo – завершена.
Настройки подключения к базе данных
Теперь необходимо создать объект основного класса Medoo и в качестве первого параметра, его методу конструктору, нужно передать массив настроек для подключения к базе данных.
1 2 3 4 5 6 7 8 9 10 11 12 |
$db = new medoo([ 'database_type'=>'mysql', 'database_name'=>'medoo', 'server'=>'localhost', 'username'=>'root', 'password'=>'', 'charset'=>'utf8', 'prefix'=>'slim_' ]); |
В передаваемом массиве, необходимо создать следующие настройки:
database_type – тип системы управления базами данных;
database_name – имя базы данных, к которой осуществляется подключение;
server – сервер базы данных;
username – имя пользователя;
password – пароль;
charset – кодировка;
prefix – префикс таблиц базы данных.
Теперь, когда создан объект главного класса Medoo, мы можем приступать к работе с данной библиотекой.
Добавление, редактирование и удаление записей
Первым делом, давайте научимся добавлять новые записи в таблицы базы данных. Для добавления новой записи и соответственно, формирования SQL запроса типа INSERT, необходимо использовать метод insert($table, $data), объекта класса Medoo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$result = $db->insert( 'news', [ "title"=>"Test", "keywords"=>"Test", "discription"=>"Test", "text"=>"Test", "anons"=>"Test", "date"=>423424234, "#dt"=>"NOW()", ] ); |
При вызове метода insert($table, $data), в качестве параметров, необходимо передать следующее:
$table – имя таблицы, в которую будет добавлена новая запись, в виде строки;
$data – массив данных для добавления в поля таблицы. При этом в качестве ключей, используются имена полей, в качестве значений – данные которые будут записаны в соответствующие поля.
Метод insert(), не только формирует SQL запрос, но и выполняет его, и возвращает идентификатор, последней добавленной записи. Для редактирования записей, используется метод update($table, $data, $where):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$result = $db->update( 'news', [ "title"=>"Test1", "keywords"=>"Test", "discription"=>"Test", "text"=>"Test", "anons"=>"Test", "date"=>423424234, "#dt"=>"NOW()", ], [ 'id' => 10 ] ); |
При вызове метода update($table, $data, $where), в качестве параметров, необходимо передать следующее:

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!$table – имя таблицы, в которой будет отредактирована запись;
$data – массив данных для редактирования (по аналогии с добавлением записей);
$where – массив данных – для формирования условия WHERE. При этом в массиве хранятся данные в виде ключ(имя поля) => значение, которые сформируют условие WHERE.
Данный метод, так же как и метод insert(), формирует SQL запрос и выполняет его, при этом возвращается количество затронутых записей. Для удаления записей из базы данных, используется метод delete($table, $where):
1 2 3 4 5 6 7 |
$result = $db->delete('news', [ 'id'=>10 ] ); |
При вызове данного метода, необходимо передать следующее:
$table – имя таблицы, в которой будет удалена запись;
$where – массив данных, для формирования условия $where.
Данный метод, возвращает, по аналогии с методом update(), количество затронутых записей.
Выборка информации из базы данных
Для формирования SQL запроса типа SELECT и выборки необходимой информации, используется метод select($table, $columns, $where):
1 2 3 4 5 6 7 8 9 10 |
$row = $db->select( 'slim_content', ['id','title(name)','introtext','fulltext'], [ 'id' => 1 ] ); |
При вызове метода select($table, $columns, $where), необходимо передать следующие параметры:
$table – имя таблицы, из которой будут выбраны данные;
$columns – массив имен полей, данные которых будут выбраны из таблицы. При этом если возле имени поля, в скобках указать некую строку, то данная строка будет использоваться как псевдоним для имени выбираемого поля.
$where – массив данных, для формирования условия WHERE.
Метод select(), возвращает в качестве результата работы – ассоциативный массив с данными по выбранным полям. А значит, используя цикл foreach(), мы можем обойти данный массив и отобразить на экране полученные данные:
1 2 3 4 |
foreach($row as $item) { echo "<h2>".$item['name']."</h2>"; echo "<div style='width:500px'>".$item['introtext']."</div>"; } |
Теперь давайте рассмотрим случай, когда в выборку данных из одной таблицы, необходимо добавить информацию из другой таблицы, то есть использовать объединение. Для этого все также используется метод select($table, $join, $columns, $where), но уже с дополнительным параметром:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$row = $db->select( 'slim_content', [ '[>]slim_categories'=>['id_cat'=>'id'] ], ['slim_content.id', 'title(name)', 'introtext', 'fulltext', 'slim_categories.name(category)'], [ 'slim_categories.id' => 1 ] ); |
Обратите внимание, что в качестве второго параметра, передается параметр $join, который представляет собой массив с данными для формирования условия JOIN. При этом в качестве ключа, используется имя таблицы, данные которой, будут добавлены в выборку. Перед именем таблицы в квадратных скобках, необходимо указать тип объединения:
[>] == LEFT JOIN
[<] == RIGH JOIN
[<>] == FULL JOIN
[><] == INNER JOIN
Значение, соответствующего ключа, содержит в себе условие объединения таблиц. В нашем случае объединяются две таблицы — slim_content и slim_categories, используя левое объединение. По следующему условию – поле id_cat, таблицы slim_content, соответствует полю id, таблицы slim_categories.
Синтаксис параметра WHERE
Теперь давайте рассмотрим случай, когда необходимо в условии WHERE сформировать несколько условий.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$row = $db->select( 'slim_content', [ '[>]slim_categories'=>['id_cat'=>'id'] ], ['slim_content.id', 'title(name)', 'introtext', 'fulltext', 'slim_categories.name(category)'], [ 'AND'=>[ 'slim_categories.id' => 1, 'keywords' => 'Business' ] ] ); |
Обратите внимание, что для формирования нескольких условий, необходимо в параметре $where, создать ячейку “AND” для объединения условий по логическому оператору “AND” и “OR” – для “OR”. Соответственно в данной ячейке будет храниться массив с данными условий.
По умолчанию, все условия формируются оператором “=”, если же необходимо использовать другой оператор – то его необходимо указать в квадратных скобках, рядом с именем поля условия.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$row = $db->select( 'slim_content', [ '[>]slim_categories'=>['id_cat'=>'id'] ], ['slim_content.id', 'title(name)', 'introtext', 'fulltext', 'slim_categories.name(category)'], [ 'OR'=>[ 'slim_categories.id[>]' => 1, 'keywords' => 'Business' ] ] ); |
Для указания параметров сортировки выбираемых записей из базы данных, необходимо в параметре $where, создать ячейку ‘ORDER’, в которой будут содержаться данные о сортировке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$row = $db->select( 'slim_content', [ '[>]slim_categories'=>['id_cat'=>'id'] ], ['slim_content.id', 'title(name)', 'introtext', 'fulltext', 'slim_categories.name(category)'], [ 'OR'=>[ 'slim_categories.id' => 1, 'keywords' => 'Business' ], 'ORDER' => 'slim_content.id ASC' ] ); |
Вот, собственно и все, что я хотел сказать Вам в данном уроке. Если Вас заинтересовала библиотека Medoo – используйте ее в своих наработках. Всего Вам доброго и удачного кодирования!!!

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!
Разработка веб-приложения на PHP
Скачайте видеокурс и узнайте, как создать веб-приложение на PHP
Скачать
Комментарии (3)