【PHP】避免PDO同时返回索引数组+关联数组
Prism's Blog Lv2

关于用PDO方法连接数据库 直接获取数据后返回重复的数据

错误例子

1
2
3
4
5
6
// 连接后将获取到的数组转为json
$pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
$query = $pdo->query('SELECT * FROM table');
$data = $query->fetchAll();

$json = json_encode($data);

这个会导致同时返回 索引数组+关联数组 返回的结果会变成

1
2
3
4
5
6
{
"id": 1,
"1": 1,
"name": "admin",
"2": "admin"
}

问题很大 所以拿数据的时候只需要关联数组在转为json就可以了

正确例子

1
2
3
4
5
6
// 连接后将获取到的数组转为json
$pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
$query = $pdo->query('SELECT * FROM table');
$data = $query->fetchAll( PDO::FETCH_ASSOC );

$json = json_encode($data);

在 fetchAll 里面 传入 PDO::FETCH_ASSOC 只返回一个关联数组

1
2
3
4
{
"id": 1,
"name": "admin"
}
  • 本文标题:【PHP】避免PDO同时返回索引数组+关联数组
  • 本文作者:Prism's Blog
  • 创建时间:2023-06-14 15:29:12
  • 本文链接:https://blog.msirp.cn/2023/06/14/【PHP】避免PDO返回索引+关联数组/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!