SQLSTATE[HY093]: Invalid parameter number:参数没有定义


SQLSTATE[HY093]: Invalid parameter number: parameter was not defined OOP

我有这个函数:

    private function sendVerification($username, $email)
    {
        global $pdo;
        $this->check = $pdo->prepare("SELECT * FROM users where user_name = :username AND user_email = :email");
        $this->check->execute(array(
        ":username" => $username,
        ":email" => $email
        ));
        if ($this->check->rowCount())
        {
            $this->get = $this->check->fetch(PDO::FETCH_ASSOC);
            $this->insert = $pdo->prepare
            ("
            INSERT INTO account_verification 
            (user_id, generated_code, date, time) 
            VALUES
            (:id, :code, CUTDATE(), CURTIME())
            ");
            $this->insert->execute(array(
            ":id" => $this->get['user_id'],
            "generated_code" => Users::generateCode($email)
            ));
        }
        else
        {
            throw new exception ("An error has occured!");
        }
    }
这个<<p>访问strong> 静态 :
    public static function generateCode($salt)
    {
        return substr(hash('sha512', $salt), 0, 15);
    }

首先我使用用户名&发邮件确认和他们有争执,然后我添加了一个变量,它将保存一个获取的数组。

然后检查是否为rowCount,然后插入数据

问题:

我得到这个错误

SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

我不太确定为什么我得到这个,我从来没有经历过这个错误,我读过它,但不明白我的代码中的问题是什么。

问题:

差不多,这个错误是什么意思,是什么导致的?

问题是,在插入查询中引用了:code的指定参数,而在执行准备好的语句时,使用了不正确的generated_code参数引用(根本没有冒号)。将参数引用更改为:code,应该可以工作。

错误信息的意思和它所说的差不多,即没有定义参数generated_code