Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

Рейтинг: 0Ответов: 0Опубликовано: 19.01.2023

При регистрации вылазит ошибка.

функция регистрации

 public function Register($params)
{
    if($this->isUserLogged())
    {
        return $this->redirectLocal('');
    }

    if($_SERVER['REQUEST_METHOD'] == "POST")
    {
        $service = $this->app->makeService('User');
        $user = array();
        $user['username'] = $_POST['username'];
        $user['password'] = $_POST['password'];
        $user['email'] = $_POST['email'];
        $user['name'] = $_POST['name'];
        $user['surname'] = $_POST['surname'];
        $user['address'] = $_POST['address'];
        $user['is_admin'] = false;

        $id = $service->addUser($user);

        if($id)
        {
            $user['id'] = $id;
            $this->userLogin($user);
            return $this->redirectLocal('');
        }
        else
        {
            return $this->render('user/register', ['error' => 'Ошибка']);
        }
    }
    else
    {
        return $this->render('user/register');
    }
}

services\UserService.php on line 76 здесь показывает ошибку

   public function addUser($user)
    {
        $sql = "INSERT INTO users(username, password, email, name, surname, address, is_admin) VALUES
        (:username, :password, :email, :name, :surname, :address, :is_admin)";
        $sth = $this->db->prepare($sql);
    
        if($sth->execute($user))
            return $this->db->lastInsertId();
        else
            return false;
    }

Структура таблицы введите сюда описание изображения

Ответы

Ответов пока нет.