Знайомство з Medoo. Зручний інструмент для роботи з базою даних

12

Від автора: розробляючи веб-додатки, найчастіше, для зберігання контенту і різної системної інформації використовуються таблиці бази даних. І, як Ви знаєте, для роботи з базою даних необхідно скласти SQL запит, і відповідно виконати його на сервері бази даних, для отримання бажаного результату. При цьому, процес складання запиту – це досить рутинна робота, яка забирає значну кількість часу і вимагає уваги, якщо Ви працюєте з великою кількістю полів в таблицях. Тому в даному уроці я хотів би представити Вашій увазі просту, але в той же час функціональну бібліотеку під назвою Medoo, яка значно спрощує взаємодію з базою даних і позбавляє веб-розробника від необхідності складання SQL запитів. Даний урок – це знайомство з medoo як з зручним інструментом для роботи з базою даних.

Знайомство з Medoo. Зручний інструмент для роботи з базою данихЗнайомство з Medoo. Зручний інструмент для роботи з базою даних

Отже, знайомство з Medoo, ми почнемо, традиційно з установки. Встановити бібліотеку можна двома способами – вручну й автоматично.

Важливе зауваження: бібліотека Medoo PHP, використовує у своїй роботі PDO, а значить Перед початком роботи, Ви повинні переконатися, що у Вашому інтерпретатор мови PHP, підключено розширення PDO для цікавить системи управління базами даних.

Ручний спосіб установки Medoo

Для ручної установки необхідно перейти на офіційний сайт бібліотеки Medoo.

Знайомство з Medoo. Зручний інструмент для роботи з базою даних

Потім, використовуючи посилання «Download», необхідно завантажити архів з останньої актуальної версії бібліотеки в каталог Вашого проекту (сайту або скрипта). В отриманому архіві міститься файл medoo.php – це і є цікавить нас, бібліотека. Тепер необхідно лише підключити дану бібліотеку до Вашого проекту:

require «medoo.php»;

На цьому ручна установка завершена.

Автоматична установка Medoo

Автоматична установка Medoo, передбачає, використання інструменту Composer. Для цього необхідно відкрити командний рядок, перейти в каталог з проектом і виконати команду.

composer require catfan/Medoo

Знайомство з Medoo. Зручний інструмент для роботи з базою даних

Далі, необхідно підключити файл autoload.php, який міститься в каталозі vendor (цей каталог був згенерований Composer).

require «vendor/autoload.php»;

На, це автоматична установка Medoo – завершена.

Налаштування підключення до бази даних

Тепер необхідно створити об’єкт основного класу Medoo і в якості першого параметра, його методом конструктору, потрібно передати масив налаштувань для підключення до бази даних.

$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.

$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):

$result = $db->update(
‘news’,
[
«title»=>»Test1»,
«keywords»=>»Test»,
«discription»=>»Test»,
«text»=>»Test»,
«anons»=>»Test»,
«date»=>423424234,
«#dt»=>»NOW()»,
],
[
‘id’ => 10
]
);

При виклику методу update($table, $data, $where), в якості параметрів, необхідно передати наступне:

$table – ім’я таблиці, в якій буде виправлений запис;

$data – масив даних для редагування (по аналогії з додаванням записів);

$where – масив даних – для формування умови WHERE. При цьому в масиві зберігаються дані у вигляді ключ(ім’я поля) => значення, які сформують умова WHERE.

Цей метод, так само як і метод insert(), формує SQL запит, виконує його, при цьому повертається кількість порушених записів. Для видалення записів з бази даних, використовується метод delete($table, $where):

$result = $db->delete(‘news’,
[
‘id’=>10
]
);

При виклику цього методу, необхідно передати наступне:

$table – ім’я таблиці, в якій буде видалено запис;

$where – масив даних, для формування умови $where.

Цей метод, що повертає, за аналогією з методом update(), кількість порушених записів.

Вибірка інформації з бази даних

Для формування запиту SQL типу SELECT і вибірки необхідної інформації, використовується метод select($table, $columns, $where):

$row = $db->select(
‘slim_content’,
[‘id’,’title(name)’,’introtext’,’fulltext’],
[
‘id’ => 1
]
);

При виклику методу select($table, $columns, $where) необхідно передати наступні параметри:

$table – ім’я таблиці, з якої будуть обрані дані;

$columns – масив імен полів, дані яких будуть обрані з таблиці. При цьому якщо біля імені поля, в дужках вказати якусь рядок, то дана рядок буде використовуватися як псевдонім ім’я обраного поля.

$where – масив даних, для формування умови WHERE.

Метод select(), що повертає в якості результату роботи – асоціативний масив з даними по вибраних полях. А значить, використовуючи цикл foreach(), ми можемо обійти даний масив і відобразити на екрані отримані дані:

foreach($row as $item) {
echo «

«.$item[‘name’].»

«;
echo «

«.$item[‘introtext’].»

«;
}

Знайомство з Medoo. Зручний інструмент для роботи з базою даних

Тепер давайте розглянемо випадок, коли у вибірку даних з однієї таблиці, необхідно додати інформацію в іншій таблиці, тобто використовувати об’єднання. Для цього також використовується метод select($table, $join, $columns, $where), але вже з додатковим параметром:

$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 сформувати кілька умов.

$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». Відповідно в даній комірці буде зберігатися масив з даними умов.

За замовчуванням, всі умови формуються оператором «=», якщо ж необхідно використовувати інший оператор – то його необхідно вказати в квадратних дужках, поруч з ім’ям поля умови.

$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’, в якій будуть міститися дані про сортування.

$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 – використовуйте її у своїх напрацюваннях. Всього Вам доброго і вдалого кодування!!!