使用php,JSON响应不如预期

时间:2015-03-28 18:09:57

标签: php pdo slim

我知道这可能是一个非常简单的问题,但我找不到这个问题的答案,可能是因为它是一个非常基本的php编程问题。这是我使用PDO(php)的功能:

<?php
function getAllUsers(){
    try {
        $conn = getConnection(); //connects to database, no explanation needed... uses PDO
        $dbh = $conn->prepare("SELECT * FROM User;");
        $dbh->execute();

        $users = $dbh->fetchAll(); //<---this is maybe the error

        $conn = null;
        return $users;
    }catch (PDOException $ex){
        echo "Error: ".$ex->getMessage();
    }
} ?>

当我使用我正在实现的API时,我使用其他PHP脚本(使用超薄框架,仍然可以理解)

<?php
$app->get("/user",function() use($app){

    $app->response->headers->set("Content-type","application/json");
    $app->response->status(200);
    $result = getAllUsers(); //call to my function getAllUsers
    $app->response->body(json_encode($result));
});
?>

它工作正常,但我得到的结果是:

[{"idUser":"1","0":"1","userName":"asdasd","1":"asdasd","userPass":"password","2":"password"},{"idUser":"2","0":"2","userName":"2312","1":"2312","userPass":"password","2":"password"}]

我认为重复的值"0":"1" , "1":"asdasd" , "2":"password"不应该存在,但我无法弄清楚如何只获取我想要的数据,而不是重复值。任何帮助将非常感激

1 个答案:

答案 0 :(得分:0)

我不是在使用PDO,而是“常见的”mysql查询,并且有相同的...你的值增加了一倍。一个数组是关联的,另一个是索引的(0,1,2)。并且有选项可以传递(如果我记得很清楚的话,“MYSQL_ASSOC”)只获得关联数组,而没有索引数组。 PDO必须有一些类似的选项。

$ dbh-&GT;使用fetchall(PDO :: FETCH_ASSOC);

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