JSON 使用 php 时的响应不符合预期
JSON response not as expected using php
我知道这可能是一个非常简单的问题,但我找不到这个问题的答案,可能是因为它是一个非常基础的 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 脚本(使用 slim 框架,仍然很容易理解)
<?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"
不应该存在,但我不知道如何只获取我想要的数据而不是重复值。任何帮助将不胜感激
我没有使用 PDO,但是 "common" mysql 查询并且有相同的......你的价值翻了一番。一个数组是关联的,其他数组是索引的 (0,1,2)。并且可以选择传递("MYSQL_ASSOC",如果我没记错的话)只获得关联数组,没有索引数组。 PDO 一定有一些类似的选项。
$dbh->fetchAll(PDO::FETCH_ASSOC);
我知道这可能是一个非常简单的问题,但我找不到这个问题的答案,可能是因为它是一个非常基础的 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 脚本(使用 slim 框架,仍然很容易理解)
<?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"
不应该存在,但我不知道如何只获取我想要的数据而不是重复值。任何帮助将不胜感激
我没有使用 PDO,但是 "common" mysql 查询并且有相同的......你的价值翻了一番。一个数组是关联的,其他数组是索引的 (0,1,2)。并且可以选择传递("MYSQL_ASSOC",如果我没记错的话)只获得关联数组,没有索引数组。 PDO 一定有一些类似的选项。
$dbh->fetchAll(PDO::FETCH_ASSOC);