При добавлении данных в 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 шт):

Автор решения: Xeramic

Сам смог решить проблему, добавив if ($_SERVER['REQUEST_METHOD'] === 'GET'). Оказалось, reg.php срабатывал дважды, так как сначала отправлялся OPTIONS запрос, а после - GET.

→ Ссылка