PHP скрипт добавления из html формы имя исполнителя и название песни в базу данных, с проверкой отсутствие дублирующийся информации
Давайте создадим простую HTML-форму для ввода имени исполнителя и названия песни, а затем напишем PHP-скрипт для добавления этой информации в базу данных, проверяя на отсутствие дубликатов.
HTML-форма
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Добавление песни</title> </head> <body> <form action="add_song.php" method="post"> <label for="artist">Имя исполнителя:</label> <input type="text" id="artist" name="artist" required><br> <label for="song">Название песни:</label> <input type="text" id="song" name="song" required><br> <input type="submit" value="Добавить песню"> </form> </body> </html>
PHP-скрипт (add_song.php
)
<?php // Подключение к базе данных $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database"; $conn = new mysqli($servername, $username, $password, $dbname); // Проверка соединения if ($conn->connect_error) { die("Ошибка подключения: " . $conn->connect_error); } // Проверяем, была ли отправлена форма методом POST if ($_SERVER["REQUEST_METHOD"] == "POST") { // Получаем данные из формы $artist = $conn->real_escape_string($_POST['artist']); $song = $conn->real_escape_string($_POST['song']); // Проверка на дубликаты $sql = "SELECT * FROM songs WHERE artist='$artist' AND song='$song'"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo "Такая запись уже существует."; } else { // Добавляем запись в базу данных $sql = "INSERT INTO songs (artist, song) VALUES ('$artist', '$song')"; if ($conn->query($sql) === TRUE) { echo "Запись успешно добавлена."; } else { echo "Ошибка: " . $sql . "<br>" . $conn->error; } } } $conn->close(); ?>
Объяснение:
- HTML-форма: используется для ввода имени исполнителя и названия песни. Метод отправки формы —
POST
. - PHP-скрипт (
add_song.php
): - Подключается к базе данных MySQL. Убедитесь, что вы заменили
your_username
,your_password
иyour_database
на ваши реальные данные доступа. - Использует
real_escape_string()
для защиты от SQL-инъекций. - Проверяет наличие записи с такими же артистом и названием песни, выполняя SQL-запрос с
SELECT
. - Если запись найдено, сообщаем пользователю об этом. Если нет, добавляем новую запись с помощью
INSERT
. - Выводит сообщение об успешном добавлении или об ошибке, если она произошла.
Подготовка базы данных:
Прежде чем использовать этот скрипт, создайте таблицу songs
в вашей базе данных:
CREATE TABLE songs ( id INT AUTO_INCREMENT PRIMARY KEY, artist VARCHAR(255) NOT NULL, song VARCHAR(255) NOT NULL );
Убедитесь, что у вас есть необходимые права на доступ и изменение базы данных.