php - PHP-将数据库结果放入数组并附加一个变量
问题描述
我正在从数据库中提取记录,我能够以我想要的方式以 JSON 格式显示数据,并且效果很好。这里的问题是我在页面上生成了一个令牌,我想将它添加到用户获得的有效负载中,这就是我得到的
{"user_details":[{
"id":"1",
"fname":"xxx",
"lname":"xxx Mensah",
"phone_number":"0000000",
"email":"yourmail@mail.com",
"username":"xx",
"password":"xx",
"user_type":"xx"
}],
"token":"xxxxx"}
但我想得到这样的结果
[{"user_details":{
"id":"1",
"fname":"xxx",
"lname":"xxx Mensah",
"phone_number":"0000000",
"email":"yourmail@mail.com",
"username":"xx",
"password":"xx",
"user_type":"xx"
},
"token":{"xxxxx"}
]
PHP
$token = xxxxx
$row = $conn->query("SELECT * from users where username='".$username."' and password='".$password."'");
$row->setFetchMode(PDO::FETCH_ASSOC);
$userdetails = $row->fetchAll(PDO::FETCH_OBJ);
$results = array(
'user_details' => $userdetails,
'token' => $token
);
echo json_encode(($results));
解决方案
对象的 JSON 编码字符串表示中的 [] 括号,而 {} 括号表示一个数组。因此,您的用户详细信息显示了一个对象,该对象是一个键值对数组。然后你有一个包含所有内容的数组,令牌和用户详细信息。
我倾向于尝试以下方式:
$userdetails = $row->fetch(PDO::FETCH_OBJ);
$object = (object) ['userdetails' => $userdetails, 'token' => $token];
echo json_encode($results);
我还没有测试过,但应该足够接近。
推荐阅读
- xml - 处理 3 中的纬度长坐标映射不正确,需要旋转
- javascript - 等待 foreach 内的可观察订阅结束
- ios - 具有动态大小单元格间距问题的 UICollectionViewCell
- java - 如何使用 org.testng.TestNG 将参数输入到此测试运行中?
- hive - 选择另一个表中不存在的列sql中的多个列
- rest - Spring-Boot Junit Test Rest 调用给出异常
- vue.js - 关闭语义模式后,Vue UI 未使用 axios 更新
- linux - 在 Docker 上运行时,如何应用 IBM MQ 操作系统 (Linux) 调优指南?
- xml - XPath contains() 不起作用
- python - 使用 Maplotlib 自定义子图方向和大小