私はこの機能を持っています:
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!");
}
}
このstaticへのアクセス:
public static function generateCode($salt)
{
return substr(hash('sha512', $salt), 0, 15);
}
最初に、ユーザー名と電子メールを使用して行があることを検証します。次に、取得した配列を保持する変数を追加します。
そして、rowCount かどうかを確認してから、データを挿入しています。
問題:
このエラーが発生しています
SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
なぜこれが発生するのかよくわかりません。このエラーを経験したことはありません。それについて読んだことはありますが、コードの何が問題になるのかわかりませんでした。
質問:
そのエラーが意味するのはなぜですか?また、何が原因なのですか?