我有这个函数:
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
。