Не работает запрос в базу при подтверждении активационного ключа

У меня есть код активации ключа аккаунта, который отправляется на почту пользователя, но когда дело доходит до запроса в базу данных, то ничего не происходит.

Сам код:

<?php
    include('sql.php');
    include('token.php');

    if (isset($_COOKIE['token'])) {
        $user = fetchUserToken($mysql, $_COOKIE['token']);
    }

    if (isset($_POST['key_submit'])) {
        $activate = $_POST['key'];

        if ($activate != $user['activate-email']) {
            echo 'Введённый Вами ключ не совпадает с активационным ключом!';
            exit();
        } else {
            header('Location: /');
            $db = "UPDATE `accounts` SET `status` = 1 WHERE `activate-email` = :activate";
            $par = ["activate-email" => $activate];
            $mysql->prepare($db)->execute($par);
        }
    }
?>
<form action="index.php" method="post">
      <h5>Письмо выслано на почту вашего аккаунта!</h5>
      <p>Проверяйте письмо в разделе "Спам"</p>
      <div class="d-flex flex-column w-100 gap-2">
           <label for="newsletter1" class="visually-hidden"></label>
           <input name="key" type="text" class="form-control" placeholder="Активационный ключ">
           <button name="key_submit" class="btn btn-primary" type="submit">Отправить</button>
      </div>
</form>

Ответы (1 шт):

Автор решения: Алексей Шиманский

Скорее всего надо заменить

$par = ["activate-email" => $activate];

на

$par = [":activate" => $activate];

А в целом используйте вывод ошибок на страницу, чтобы интерпретатор показал в чём именно дело

Как и какими средствами находить ошибки в PHP коде?

→ Ссылка