【问题标题】:Issues reading arrays from mysql database when using PDO in php在 php 中使用 PDO 时从 mysql 数据库读取数组的问题
【发布时间】:2014-11-15 07:46:00
【问题描述】:

我设置了以下代码,以根据下面查询语句中的条件从数据库中读取和输出特定行。但是,当我尝试在控制台中记录输出时,我只能获得一个值,虽然它确实存在于数据库中(作为关键属性),但它每次都来自第一行。我没有得到符合 SQL 条件的行。有什么想法吗?

function getLoginInfo($email,$password){
    global $db_user, $db_password, $db_host, $db_name;

    if (isValidLogin($email,$password)){
        $dbconn = connectToDB($db_user, $db_password, $db_host, $db_name);
        $userInfoQuery = $dbconn->prepare("Select * from (Users as U inner join RegisteredUsers as R on U.UID = R.UID) where email = :email");
        $userInfoQuery->execute(array(":email"=> 'derp@gmail.com'));
        $results = $userInfoQuery->fetch(PDO::FETCH_ASSOC);     
        echo $results; //will return data in the form ["col1"=>rowdata,"col2"=>rowdata,..."colX"=>rowdata]
        }
    else{
        return false;
    }
}

【问题讨论】:

    标签: php mysql arrays pdo


    【解决方案1】:

    您需要使用循环来获取查询返回的所有行:

    while( $results = $userInfoQuery->fetch(PDO::FETCH_ASSOC) ) { 
        echo $results;
    }
    

    PDOStatement::fetch 函数的文档说函数“从结果集中获取下一行”,因此它只返回一行。如果PDOStatement::fetchAll 函数将返回完整的结果集。

    【讨论】:

      猜你喜欢
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2013-08-29
      • 2015-03-25
      • 1970-01-01
      相关资源
      最近更新 更多