Я не могу отправить значения в базу данных через Postman.
Недавно я начал создавать CRUD API для практических целей. Я нашел несколько хороших руководств о том, как подключиться к базе данных с помощью PHP. Мне удалось собрать базу данных MySQL с помощью phpMyAdmin и подключить ее к PHP. Также запрос GET возвращает значения из базы данных: http://ivanzarkovic.com/movies/fetch_all_movies.php
В Postman я попытался добавить http://ivanzarkovic.com/movies/add_movie.php?movie_name=SomeName&genre=SF&year=2005&rating=4.6 или массово в форме JSON.
Хотя я ошибся с типом данных, поэтому я изменил тип в БД на строку (VARCHAR), но это не решило проблему.
if (isset($_POST['movie_name'])&&isset($_POST['genre'])&&isset($_POST['year'])&&isset($_POST['rating'])){
$movieName = $_POST['movie_name'];
$genre = $_POST['genre'];
$year = $_POST['year'];
$rating = $_POST['rating'];
//Query to insert a movie
$query = "INSERT INTO movies( movie_name, genre, year, rating) VALUES (?,?,?,?)";
//Some code here
}else{
//Mandatory parameters are missing
$response["success"] = 0;
$response["message"] = "missing mandatory parameters";
}
Я ожидаю зафиксировать новую запись в базе данных, но она привязана к «отсутствующим обязательным параметрам». isset($_POST['movie_name']) возвращает false.






Предоставленный вами пример URL-адреса содержит данные в качестве параметров запроса.
Это означает, что вы должны обращаться к $_GET, а не $_POST.
Ваш код подходит для приема данных по почте, можете ли вы поделиться запросом почтальона?
Пример:
if (isset($_GET['movie_name']) && isset($_GET['genre']) && isset($_GET['year']) && isset($_GET['rating'])) {
$movieName = $_GET['movie_name'];
$genre = $_GET['genre'];
$year = $_GET['year'];
$rating = $_GET['rating'];
//Query to insert a movie
$query = "INSERT INTO movies( movie_name, genre, year, rating) VALUES (?,?,?,?)";
//Some code here
} else {
//Mandatory parameters are missing
$response["success"] = 0;
$response["message"] = "missing mandatory parameters";
}
Вы случайно не добавляете их в поле для параметров запроса, а не в тело сообщения?
Вы были правы, я не отправил правильный POST-запрос. Я понятия не имел, почему это не работает, но мне удалось опубликовать данные в БД. Достаточно ли безопасен этот способ подключения к базе данных, если я добавлю только авторизацию входа с токеном?
Поскольку я впервые использовал Postman, надеюсь, это то, что вы просите меня отправить. Для записи я выбрал POST в качестве метода, добавил пары ключ-значение и нажал кнопку «Отправить». Я полагаю, что ошибаюсь. POST /movies/add_movie.php?movie_name=some andsf&genre=sf&year=2005&rating=4.6 HTTP/1.1 Host: ivanzarkovic.com Cache-Control: no-cache Postman-Token: 545fb30d-1e92-5327-8717 -857b78164b7b Content-Type: multipart/form-data; граница=---- WebKitFormBoundary7MA4YWxkTrZu0gW