绑定变量的数量与令牌的数量不匹配

时间:2014-06-01 00:41:57

标签: php pdo

以下是问题发生的示例。浏览器说错误发生在stmt->execute();

    function login($email, $password, $dbObj) 
    {
       if ($stmt = $dbObj->prepare("SELECT username, db_password, salt FROM accounts WHERE email = :email LIMIT 1")) 
       {
          $stmt->bindParam(':username', $username);
          $stmt->bindParam(':db_password', $db_password);
          $stmt->bindParam(':salt', $salt);
          $stmt->bindParam(':email', $email);
          $stmt->execute();  // Problem here
          $stmt->fetch(PDO::FETCH_OBJ);
          $password = hash('sha512', $password . $salt);
          if ($stmt->rowCount() == 1) 
          {
              // ...
          }
       }
    }

1 个答案:

答案 0 :(得分:0)

好吧,你绑定了4个变量:username :db_password :saltemail,但你的语句中只有一个标记 - :email。我不完全确定你要做什么,但你需要修改你的SQL或不使用额外的变量。