【问题标题】:PDO with json_encode return data as arrays带有 json_encode 的 PDO 将数据作为数组返回
【发布时间】:2013-11-03 03:21:15
【问题描述】:

我在尝试将我的数据作为二维数组而不是单个数组中的对象返回时遇到了问题。

我这样获取我的查询结果:

    if($stmt->rowCount()){
        echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC)); exit;  
    }

我从json_encode得到的数据是这样的:

   [
      {"id":"1","name":"Test"},{"id":"2","name":"Test 2"}
   ]

我希望如何以这种格式返回数据:

[0] 
  [0] = "1";
  [1] = "Test";
[1]
  [0] = "2";
  [1] = "Test 2";

PDO 在获取结果时是否提供这种格式?

【问题讨论】:

  • FWIW,我建议不要直接返回数据库数据,因为这通常会使服务 API 过于脆弱。
  • @user2864740 想详细说明一下您所说的易碎是什么意思?
  • @Dave 它在应用程序的不同层之间不提供隔离。对数据库模式的更改会直接影响返回值。通过在适当的边界(例如 Web API)定义清晰的接口(与架构分离),可以减轻/隔离更改,并且整个解决方案“不那么脆弱”。
  • 不知道我什至明白这意味着什么:P

标签: php pdo


【解决方案1】:

echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC)); 更改为echo json_encode($stmt->fetchAll(PDO::FETCH_NUM));

http://php.net/manual/en/pdostatement.fetch.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2015-08-26
    • 2013-09-04
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多