При добавлении данных в MySQL, выводит, что запрос неуспешен, но данные в таблице появляются
Есть база данных MySQL:
Обращаюсь к ней через reg.php, который добавляет данные, отправленные HTTP запросом, в таблицу. При этом происходит проверка на наличие пользователя в базе данных с отправленным тегом:
$sql = "SELECT id FROM users WHERE EXISTS (SELECT * FROM users WHERE tag = '$tag')";
if($result = $link->query($sql)){
if($result->num_rows == 0){
$sql = "INSERT INTO users (name, password, tag) VALUES ('$name', '$password', '$tag')";
if($result = $link->query($sql)){
echo json_encode(["state" => true]);
}
} else {
echo json_encode(["state" => false]);
}
}
Если ввести уже существующий в таблице tag, то выводит {state: false}
(так и надо). Но если ввести новый тег, то пользователь успешно добавится в таблицу, но всё равно в консоли я получаю {state: false}
P.S. Также я заметил, что если не делать INSERT, а просто выводить state, то всё работает верно
Ответы (1 шт):
Сам смог решить проблему, добавив if ($_SERVER['REQUEST_METHOD'] === 'GET')
. Оказалось, reg.php срабатывал дважды, так как сначала отправлялся OPTIONS запрос, а после - GET.