【问题标题】:PDO returning execute results to an arrayPDO 将执行结果返回到数组
【发布时间】:2012-06-25 06:56:54
【问题描述】:

所以我在一个很可能有一个简单解决方案的问题上撞到了墙上。这是我的代码。

public function login($username, $password){

        $sql = "SELECT * FROM users WHERE username = :user AND password = :pass";
        $stmt = $this->pdo->prepare($sql);
        $data = array('user' => $username, 'pass' => md5($password . $this->salt));
        $stmt->execute($data);

        $status = $stmt->fetchColumn();
        if($status){
            echo "You are Logged in!";
            print_r($result);
        } else {
            echo $status;
            $this->error['alert'] = "You have not entered the correct login information.";
            Users::ErrorReport();
        }

    }

我想要做的是从该用户行中提取所有数据并将其存储在一个数组中,以便我可以访问它以便将其存储到类变量中。我想做类似于

的事情
while($row = $stmt->fetchAll()){
   $this->username = $row['username'];
}

我这样做时的问题是我遇到了一百万个令人讨厌的错误并且在搜索网络时找不到任何解决方案。

【问题讨论】:

    标签: php pdo


    【解决方案1】:

    使用fetch() 而不是fetchAll()

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
       $this->username = $row['username'];
    }
    

    或者如果你喜欢,你可以这样使用fetchAll()

    $result_array = $stmt->fetchAll(PDO::FETCH_ASSOC)
    

    更新:Venu 是对的,如果您只想使用关联,那么使用混合(数字和关联)有点浪费。所以最好使用PDO::FETCH_ASSOC

    【讨论】:

    • +1 for u,定义获取样式总是好的.. while($row = $stmt->fetch(PDO::FETCH_ASSOC))
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2012-11-21
    相关资源
    最近更新 更多