добавить информацию через форму в бд
не добавляется информация через форму, после ввода в инпут нажимаю на кнопку и ничего не происходит, в базе информация не появляется
<form method="post" action="add_track.php" class="block"></form>
<input type="text" placeholder="Введите название трека" class="name" name="name">
<input type="text" placeholder="Введите исполнителя трека" class="ispol" name="ispol">
<input type="text" placeholder="Введите ссылку на изображение трека" class="link" name="link">
<button type="submit" class="add"></button>
</form>
<?php
require_once 'connect.php';
$name = $_POST['name'];
$ispol = $_POST['ispol'];
$link = $_POST['link'];
mysqli_query($connect, "INSERT INTO `track` (`name`, `performer`, `img`)
VALUES ('$name', '$ispol', '$link')");
header('Location: /')
?>
Ответы (1 шт):
Автор решения: Ипатьев
→ Ссылка
Если "запрос не работает", это может быть вызвано следующими причинами:
- До выполнения запроса дело вообще не дошло, из-за некорректной логики в коде программы. Чтобы это проверить, надо добавить временный отладочный вывод (или использовать пошаговую отладку в IDE)
- При выполнении запроса произошла ошибка. Необходимо настроить РНР так, чтобы он сообщал обо всех ошибках, в том числе при работе с БД. См. рекомендации в этом ответе.
В случае, если запрос был выполнен, и при этом без ошибок, но при этом не сделал то что нужно, причины могут быть следующие:
- Не было найдено совпадение в условии WHERE. Надо проверять входящие данные, и данные, которые лежат в БД.
- Если запрос на изменение данных, то иногда бывает, что результат запроса проверяют не в той базе данных. Например, phpmyadmin работает с БД, которая настроена на порт 8889, а РНР работает с БД на порту 3306. Надо убедиться, что результат запроса проверяется в той же самой БД.
- Как вариант, изменения происходят в рамках открытой транзакции, которой потом не делают commit. Надо убедиться, что транзакция не стартует или что она подтверждается.