将PDO :: FECH_ASSOC更改为字符串

时间:2013-05-02 07:33:13

标签: php mysql

我正在尝试使用函数根据输入的用户名获取用户的密码。但是我似乎无法将结果变为字符串。如何将其转换为字符串?我只想要存储在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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

试试这个

while($row = $query->fetch(PDO::FETCH_ASSOC))
{
    $password = $row['password'];
}