以下是问题发生的示例。浏览器说错误发生在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)
{
// ...
}
}
}
答案 0 :(得分:0)
好吧,你绑定了4个变量:username
:db_password
:salt
和email
,但你的语句中只有一个标记 - :email
。我不完全确定你要做什么,但你需要修改你的SQL或不使用额外的变量。