-1

我正在尝试使用一个函数来根据输入的用户名获取用户的密码。但是我似乎无法将结果变为字符串。如何将其传输到字符串?我只想要存储在password列中的值。

这是功能

public function get_password($username) {
    global $pdo;

    $query = $pdo->prepare("SELECT `password` FROM `users` WHERE `username` = ?");
    $query->bindValue(1, $username);
    $query->execute();

    $query->fetch(PDO::FETCH_ASSOC);

    return $query;
}

我想要这个,因为我一直收到一个错误,说使用此函数结果的参数需要字符串,给定数组,所以我假设函数的结果需要是字符串而不是数组

编辑:我尝试添加$query['password'],但它返回一个错误说Cannot use object of type PDOStatement as array

4

2 回答 2

1

用这个:

public function get_password($username) {
    global $pdo;

    $query = $pdo->prepare("SELECT `password` FROM `users` WHERE `username` = ?");
    $query->bindValue(1, $username);
    $query->execute();

    $password = "";
    while($row = $query->fetch(PDO::FETCH_ASSOC))
    {
        $password = $row['password'];
    }
    return $password;
}
于 2013-05-02T07:43:06.777 回答
0

尝试这个

while($row = $query->fetch(PDO::FETCH_ASSOC))
{
    $password = $row['password'];
}
于 2013-05-02T07:40:57.270 回答