Php 打印r和foreach,给出不同的结果

Php 打印r和foreach,给出不同的结果,php,pdo,Php,Pdo,我有一个pdo函数,可以从数据库中获取用户名和用户ID。当我运行该函数时,会得到不同的结果 打印 数组([ID]=>58[username]=>abdullatif) foreach给了我 5-5a-a 数据库中有一行与pdo查询匹配 public function getUserCredentials($userName, $password){ $this->db = new Dbpdo_Database(); $this->db->connect(); try{

我有一个pdo函数,可以从数据库中获取用户名和用户ID。当我运行该函数时,会得到不同的结果

打印

数组([ID]=>58[username]=>abdullatif)

foreach给了我

5-5a-a

数据库中有一行与pdo查询匹配

public function getUserCredentials($userName, $password){
$this->db   = new Dbpdo_Database(); 
$this->db->connect();
try{  
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $dbh->prepare("SELECT 
            ID 
          FROM 
            administrators 
          WHERE 
            username = :username 
          AND 
            user_password = :password
          LIMIT 1");  


    $stmt->bindParam(':username', $userName, PDO::PARAM_STR);
    $stmt->bindParam(':password', $password, PDO::PARAM_STR);
    }

    $stmt->execute();

    /*** fetch the results ***/
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

    return $results;

    /*** close the database connection ***/
    //$dbh = null;
}
catch(PDOException $e){
    echo $e->getMessage();
  } 
}

$results = $mydb->getUserCredentials($userName, $password);

foreach ($results as $row){
echo $row['ID'].'-'.$row['username'];
}

print_r($results);

任何关于问题所在的提示都将不胜感激。提前谢谢

您的
$results
数组是一维的-它有一个ID和一个用户名。您的
foreach
正在寻找一个二维数组,每行包含一个ID和一个用户名。将其更改为:

foreach($results as $key => $value) {
    echo $key . '-' . $value;
}
你应该得到:

ID-58
username-abdullatif

如果我只需要id的结果,我将如何做?
$results['id']
(如果返回多个匹配行,这可能会发生变化,具体取决于您的脚本)