我有一个pdo函数,可以从数据库中获取用户名和用户ID。当我运行该功能时,我会得到不同的结果。
print_r给出
数组([ID] => 58 [用户名] => 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);
任何有关错误的提示都会非常感激。提前致谢。
答案 0 :(得分:2)
您的$results
数组是一维的 - 它有一个ID和一个用户名。您的foreach
正在寻找一个二维数组,每行包含一个ID和一个用户名。将其更改为:
foreach($results as $key => $value) {
echo $key . '-' . $value;
}
你应该得到:
ID-58
username-abdullatif