Этот урок является продолжением темы предыдущего урока, в котором я рассказал, как сделать базу данных для сайта, в этом уроке я расскажу, как подключить базу к сайту, какие основные sql запросы вам необходимо знать для работы, и как это все взаимодействует по средствам php.


Работа с базой данных SQL запросы и php

Этот урок получился достаточно объемным, но я постарался максимально понятно и упорядоченно все изложить, чтобы не возникло вопросов. Основной материал этого урока, это взаимодействие с базой данных по средствам sql запросов и php.

Подключение базы данных к сайту

Здесь все достаточно просто, основная задача подключить базу данных и проверить прошло ли это подключение, для этого мы можем создать отдельный файл и назвать его скажем db_connect.php и добавить его в index.php по средствам функции include() или можем прописать соединение сразу в index.php. Я буду прописывать в одном файле так как это учебный урок и для наглядности будет удобнее делать именно так, ну а если вы делаете серьезный проект, то конечно лучше перенести код подключения к базе в отдельный файл. Давайте разбираться как это сделать, для этого в вашем пока чистом файле пропишем следующий код:

$connect = mysqli_connect('localhost','root','root','learnphp');
mysqli_set_charset($connect,"utf8");

Мы объявляем переменную conncet которая будет отвечать за подключение к базе данных, эта переменная получит результат выполнения стандартной функции mysqli_connect которая непосредственно и выполняет подключение к базе данных, через запятую мы вводим сначала адрес сервера базы данных, это localhost, затем имя пользователя, пароль и в конце имя той базы данных к которой мы подключаемся. Далее с помощью функции mysqli_set_charset мы задаем кодировку, с помощью которой мы будем взаимодействовать с базой. Первым параметром мы передаем соединение с базой данных, а затем непосредственно кодировку utf-8. Все нам осталось лишь проверить прошло ли соединение с базой:

if(mysqli_connect_errno()) {
    echo "Ошибка подключения к базе данных" . mysqli_connect_error();
}

Для этого мы используем функцию mysqli_connect_errno() которая возвращает код ошибки соединения, если таковая имеется, то она выведется на экран ошибку по причине которой соединение не прошло. После удачного подключения базы данных, пора рассмотреть основные операторы запросов SQL.

Операторы для работы с базой данных

1. Оператор INSERT

Давайте первый делом попробуем добавить страницу в одну из таблиц будущего сайта:

$query = "INSERT INTO page (page_name, title, description, keyword, h1, text)
 VALUE 
('О проекте', 'About', 'Подробно о том что это такое', 'О проекте', 'Текст', 'Много много текста')";

$query_result = mysqli_query($connect,$query);

if ($query_result) {
    echo "Ok";
} else {
    echo "Ошибка";
}

Для начала, снова делаем переменную в которую мы назовем её $query в нее мы запишем запрос на добавление новой страницы в базу данных, для этого используем оператор INSERT INTO название таблиц (перечесляем через запятую название полей таблицы) VALUE (так же через запятую значения в '' соответственно) id не заполняем так – как оно заполняется автоматически. Далее снова создаем переменную и с помощью функции mysql_query сначала прописываем переменную для подключения к базе данных, а затем запрос. После чего в таблицу должна добавиться новая страница, для проверки я написал обычный код if($query_resuly) если функция выполнена то она возвращает логическое выражение TRUE и мы увидим вывод на экран «Ок», если нет то мы FALSE и на экране мы увидим «Ошибка».

2. Оператор DELETE

После того как мы научились добавлять страницы нужно научится и удалять, это достаточно просто и даже проще чем предыдущий оператор.

$query = "DELETE FROM page WHERE id=4";

Благодаря оператору DELETE мы можем удалить любую строчку из таблицы указав конкретно таблицу в данном случае это «page» и через оператор WHERE указываем по какому признаку находить строку, в данном примере я прописал id, но это не ограничивает наши возможности можно указать например page_name = ‘О проекте’ тогда будет удалена строка из базы где это параметр совпадет с запросом.

3. Оператор UPDATE

Далее, пора научится обновлять существующие записи в базе, и делается это опять-таки достаточно просто:

$query = "UPDATE page SET title='Новостная страница' WHERE id=2";

Оператор UPDATE дает команду обновить таблицу (page) оператор SET задать значение полю title где id = 2. Тут я думаю вы принцип уже должны уловить, все запросы по своей структуре одинаковы, главное понимать какие операторы использовать для решения поставленных задач. Здесь так же вы можете задать любое поле, для обновления и выбрать любой признак не только id.

4. Оператор SELECT

Это, пожалуй, самый часто используемый и поэтому важный оператор при помощи него вы будете доставать всю необходимую информация из базы данных и выводить её соответственно на вашем сайте в нужном порядке:

$query = "SELECT * FROM page";     
$query_result = mysqli_query($connect,$query);

Мы создали запрос с помощью оператора SELECT выбрать «*» звездочка означает все значения FROM из таблицы page. Теперь благодаря этому запросу мы получили все записи из таблицы page, но не всегда нам нужны все записи, поскольку таблица может быть очень большой и перегружать работу сайта лишними данными точно не стоит, и тогда мы можем выбрать просто конкретные поля вроде title, page_name и т.д. просто перечислив их через запятую. Далее, как в предыдущих примерах проверка не сработает, так как нам вернется уже не логический ответ типа TRUE или FALSE, а вернется объект, который нам необходимо преобразовать в массив, из которого уже можно будет легко вытащить любую нужную информацию. Для этого выполним следующее:

$count = mysqli_num_rows($query_result);

if ($count) {

    $row = mysqli_fetch_array($query_result);

    echo '<pre>';
    print_r($row);

}

Мы создаем переменную $count и с помощью функции mysqli_num_rows узнаем сколько записей хранится в объекте, далее с помощью if ($count) мы проверяем есть ли записи и если они есть, то мы создаем переменную $row которая будет тем массивом, из которого в последствии мы будем извлекать данные. Функция mysqli_fetch_array эта функция вернет нам массив с одной записью, и этот массив может быть как ассоциативным так и нумерованным, который мы распечатаем print_r($row); :

Но запись в таблице page естественно не одна и нам нужно вывести все строки и для удобства работы с ним мы выведем ассоциативный массив, для этого пишем следующее:

$row = mysqli_fetch_all ($query_result, MYSQLI_ASSOC);

echo '<pre>';
print_r($row);

Здесь для создания массива мы применили функцию mysqli_fetch_all передав ей объект и тип массива который нам необходим, а именно MYSQLI_ASSOC и главное эта функция возвращает не одну строку, а все которые есть:

Как видите мы получили понятный ассоциативный массив, с которым в дальнейшем не составит проблем работать и обрабатывать данные так как нам нужно, ну эта уже тема отдельного урока, который не входит в рамки данного материала.

На этом хочу закончить урок, мы разобрали все основные запросы для работы с базой, я не разбирал все дополнительные возможности каждого оператора, которые могут пригодится, но это вы без проблем сможете найти в документации на официальном сайте. В рамках этого урока я постарался максимально просто и понятно раскрыть основные моменты работы с базами данных и некоторые функции на PHP.

Дата: 2021-09-23
Автор: Алексей Мезенцев
Программирование на JavaScript с Нуля до Гуру 2.0

Выучи JavaScript легко и быстро!

JavaScript - самый востребованный язык программирования в мире

Кликни и узнай подробности