gpt4 book ai didi

php - MySQL php get column using another column(使用用户名获取密码)

转载 作者:可可西里 更新时间:2023-11-01 08:40:02 27 4
gpt4 key购买 nike

成功验证数据库中存在用户名后,我还需要验证密码是否匹配。因此,我需要从数据库中检索哈希密码,对吧?或者我还有其他选择吗?

我正在使用 PHP 5.5 API bcrypt 进行哈希处理。当我从数据库中获取密码时,我的代码会给我一个 500 内部服务器错误。我该如何正确地做到这一点?

这是我的 PHP 代码:

// If found username, check password, else respond invalid username
if($countRows!==0){
// Get hash from database
// Prepare statement
$stmt = $conn->prepare('SELECT password FROM users WHERE username = ?');

// Bind
$stmt->bind_param('s', $ps_username);

// Set Parameters
$ps_username = $username;

// Execute
$hash = $stmt->execute();

// Check password
if (!password_verify($password, $hash)) {
if($error != ""){
$error .= '<br>';
}
$error .= 'The user or password you entered do not match, please try again.';
}
else {
echo 'OK';
// Session start
// Redirect user to profile/homepage
}
}

有人可以推荐一些我可以学习 SQL 命令的东西吗?我找不到合适的地方。

最佳答案

execute()不返回任何列数据。它返回一个 bool 值(真/假)。这是您的代码块首先失败的地方:

    $hash = $stmt->execute();

您可以在此处查看有关如何从结果集中获取数据的示例:http://php.net/manual/en/mysqli-stmt.fetch.php

一个例子是:

$stmt->execute();
$stmt->bind_result($hash);
$stmt->fetch();

回应:

And can someone recommend something that I can learn SQL commands?

这对于 Stackoverflow 来说几乎是题外话,但是 mysqli 的 PHP 手册可以通过大量示例向您展示如何很好地使用 mysqli API。如果您想学习结构化查询语言本身,可以使用大量外部资源,包括 MySQL 的文档。

关于php - MySQL php get column using another column(使用用户名获取密码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35496668/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com