Учимся работать с командами SQL и как эти команды передавать из PHP.
Основные команды CRUD
Создание строки (CREATE)
INSERT INTO `articles` (`article_title` , `article_text` ) VALUES ('Название статьи', 'Текст статьи');
Пример создания нескольких метаполей:
INSERT INTO `wp_5_postmeta` VALUES
(1393, 168, 'elements', 'a:6:{i:0;s:11:"kondicioner";i:1;s:2:"tv";i:2;s:5:"phone";i:3;s:4:"save";i:4;s:6:"fridge";i:5;s:6:"shower";}'),
(1396, 178, 'elements', 'a:7:{i:0;s:11:"kondicioner";i:1;s:2:"tv";i:2;s:5:"phone";i:3;s:4:"save";i:4;s:6:"fridge";i:5;s:4:"bath";i:6;s:6:"shower";}'),
(1399, 378, 'elements', 'a:7:{i:0;s:11:"kondicioner";i:1;s:2:"tv";i:2;s:5:"phone";i:3;s:4:"save";i:4;s:6:"fridge";i:5;s:4:"bath";i:6;s:6:"shower";}'),
(1403, 43, 'elements', 'a:4:{i:0;s:11:"kondicioner";i:1;s:2:"tv";i:2;s:5:"phone";i:3;s:6:"shower";}'),
(1406, 269, 'elements', 'a:6:{i:0;s:11:"kondicioner";i:1;s:2:"tv";i:2;s:5:"phone";i:3;s:4:"save";i:4;s:6:"fridge";i:5;s:6:"shower";}'),
(1409, 161, 'elements', 'a:6:{i:0;s:11:"kondicioner";i:1;s:2:"tv";i:2;s:5:"phone";i:3;s:4:"save";i:4;s:6:"fridge";i:5;s:6:"shower";}');
Получение строки (READ)
SELECT * FROM `articles`; // Получить все статьи
SELECT * FROM `wp_postmeta` WHERE `meta_key` = "packing" AND `meta_value` = ""; // Получить все метаполя packing с пустым значением
Обновление строки (UPDATE)
UPDATE `articles` SET `article_title` = 'Новое название статьи' WHERE `id` = '5' LIMIT 1 ; // Изменение названия статьи с ID 5
UPDATE `hot_postmeta` SET `meta_value` = '' WHERE `meta_key` = '_sale_price'; // Очистить все значения метаполей _sale_price
UPDATE `wp_posts` SET `post_type` = 'post' WHERE `post_type` = 'avada_portfolio'; // Поменять тип записей
Удаление строки (DELETE)
DELETE FROM `articles` WHERE `id` = '3' LIMIT 1 ;
DELETE FROM `wp_postmeta` WHERE `meta_key` = '_advantages'; // Удалить все метаполя с ключом _advantages
DELETE FROM `wp_posts` WHERE `post_type` = 'revision'; // Удалить все ревизии
Выборка определенного столбца из запроса
Предположим есть запрос (получить вложения определенного автора)
SELECT * FROM `wp_posts` WHERE `post_author` = 36 AND `post_type` LIKE 'attachment'
При этом нам нужен например только столбец с названиями файлов (post_name), тогда меняем * на post_name
SELECT post_name FROM `wp_posts` WHERE `post_author` = 36 AND `post_type` LIKE 'attachment'
Также можно добавить несколько столбцов через запятую.
Работа с БД из PHP
Подключение к БД:
$link = mysqli_connect('localhost', 'root', 'pass', 'blog_bd');
/* проверка соединения */
if (mysqli_connect_errno()) {
echo 'Соединение не удалось:<br>';
echo mysqli_connect_error();
exit();
}
Запрос к БД с командой к SQL:
$query = "SELECT * FROM `articles`";
$result = mysqli_query($link, $query);
if ( $result == true ) {
echo '<ul>';
while ($row = $result->fetch_assoc()) {
echo '<li>' . $row["post_title"] . '</li>';
}
echo '</ul>';
// очищаем результирующий набор
mysqli_free_result($result);
} else {
echo 'Ничего не найдено!';
}
mysqli_close($link);
[site-socialshare]