Сохранение данных в MySQL

Материал из Викижурнал
Сохранение данных в MySQL
Сохранение данных в MySQL
Сохранение данных в MySQL

Сохранение данных в MySQL — процесс, при котором происходит сохранение информации из форм на странице в базу данных специальными командами языка программирования, такими как PHP. В базе сохраняются текстовые данные, например в виде учётных записей пользователей (логин, пароль, электронный адрес и другая подобная информация), название файлов (картинки, фотографии, аудио-видео файлы), и обычный текст в виде сообщений или публичных записей пользователей.

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

Процесс сохранения данных в MySQL

Весь процесс сохранения информации в базе данных MySQL можно разделить на два этапа:

  • Подготовка базы данных MySQL под свои нужды - создание таблиц и необходимых в ней столбцов.
  • Создание HTML форм, через которые осуществляется сохранение введённых данных.

Подготовка базы данных

После того как база данных создана со своим уникальным именем, необходимо добавить необходимые таблицы и столбцы в ней. Например, создадим таблицу users, где будут сохраняться три основных параметра учётной записи пользователя сайта: логин, пароль, электронный адрес. Также будет дополнительный столбец с персональным ID пользователя, который присваивается автоматически к каждой новой зарегистрированной учётной записи. Итак, алгоритм действий такой:

  • Создаём базу данных.
  • Создаём таблицу users.
  • Создаём нужные нам столбцы в таблице users.

Работа с формой для отправки данных

Работа с формой для отправки данных в таблицы MySQL состоит из двух файлов:

  1. Страница с формой, в которую вносятся данные, в нашем случае формы для логина, пароля и электронного адреса.
  2. PHP файл, который обрабатывает форму и отправляет данные непосредственно в базу данных.

Разберём более детально, как происходит обработка данных и их сохранение в MySQL.

Сохранение текстовой информации

Для сохранения текстовой информации, такой как логин, пароль и электронный адрес, необходимо использовать SQL-запросы в PHP файле, который обрабатывает данные формы. Пример PHP кода для сохранения данных в таблицу users:

<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database_name";

// Создание соединения
$conn = new mysqli($servername, $username, $password, $dbname);

// Проверка соединения
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Получение данных из формы
$user_login = $_POST['login'];
$user_password = $_POST['password'];
$user_email = $_POST['email'];

// SQL запрос для вставки данных
$sql = "INSERT INTO users (login, password, email) VALUES ('$user_login', '$user_password', '$user_email')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

Сохранение файлов

Для сохранения файлов, таких как изображения или аудио-видео файлы, нужно немного изменить процесс. В PHP файле, который обрабатывает данные формы, следует добавить код для загрузки файлов на сервер и сохранения пути к ним в базе данных. Пример PHP кода для загрузки файла и сохранения его пути в таблицу files:

<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database_name";

// Создание соединения
$conn = new mysqli($servername, $username, $password, $dbname);

// Проверка соединения
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Директория для загрузки файлов
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

// Проверка типа файла
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}

// Проверка, если файл уже существует
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}

// Проверка размера файла
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}

// Разрешение определенных форматов файлов
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// Проверка, если $uploadOk установлен в 0 из-за ошибки
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// Если все проверки пройдены, пытаемся загрузить файл
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". htmlspecialchars(basename($_FILES["fileToUpload"]["name"])). " has been uploaded.";

        // SQL запрос для вставки пути к файлу
        $sql = "INSERT INTO files (file_path) VALUES ('$target_file')";

        if ($conn->query($sql) === TRUE) {
            echo "File path saved to database successfully";
        } else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }

    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}

$conn->close();
?>

Примечание

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

Статьи по схожей теме