我有一些方法来保存记录,包括用户令牌和电子邮件这样的:的print_r返回1 althought没有记录保存
public function saveResetToken($email, $resetToken)
{
try {
$conn = Database::getConnection();
// Connect and create the PDO object
$conn->exec('SET CHARACTER SET utf8'); // Sets encoding UTF-8
// Define and prepare an INSERT statement
$sql = 'UPDATE users SET reset_token=:token WHERE email =:email limit 1';
$stmt =$conn->prepare($sql);
// Adds value with bindParam
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':token', $resetToken,PDO::PARAM_STR);
if ($stmt->rowCount()===1){
$conn = null; // Disconnect
return true;
}else{
return false;
}
} catch (PDOException $e) {
include('../views/error.php');
include('../views/admin/includes/footer.php');
exit();
}
}
当我使用的print_r $ stmt-> rowCount时(),其返回“1”,但是当在我的reset_token检查时,我发现没有数据。所以我的代码有什么错误?
你应该在'...-> bindParam(...);'后面运行'$ stmt-> execute();'来更新数据库。你在说'$ resetToken'是空的吗?你在做什么'print_r'?如果它在整个函数中有“无数据”,那么你必须错误地传递它。让我知道这是否回答你的问题。我正在试图找到更多的信息,然后才作出答复。 – DutGRIFF 2015-03-25 03:04:22
@DutGRIFF你是对的,我很粗心,当我复制粘贴我的代码我覆盖执行(),但为什么它返回1当我用户Print_r($ user-> saveResetToken($ email,$ activasion)?:D – Ying 2015-03-25 03:10:27
请更新你的问题中的代码我没有看到'print_r($ user-> saveResetToken($ email,$ activasion)',所以我不能告诉你它为什么返回1.除非你想知道为什么整个函数返回1. – DutGRIFF 2015-03-25 03:16:53