在mysql数据调用(PHP)中仅获取一条记录

在mysql数据调用(PHP)中仅获取一条记录,php,angularjs,rest,slim,Php,Angularjs,Rest,Slim,我正在尝试使用slim php框架作为角度前端的restful后端。 从sql数据库中获取所有记录时遇到问题。 我在控制器中使用以下代码: function refreshlistings() { Data.get('getAllListings').then(function(results) { $scope.lists = results; var tempdata; for (var i = 0; i < $scope

我正在尝试使用slim php框架作为角度前端的restful后端。 从sql数据库中获取所有记录时遇到问题。 我在控制器中使用以下代码:

    function refreshlistings() {
    Data.get('getAllListings').then(function(results) {
        $scope.lists = results;
        var tempdata;
        for (var i = 0; i < $scope.lists.length; i++) {
            $scope.lists[i].data = decrypt($scope.lists[i].data);
        }

        if (!$scope.lists) {
            $scope.lists = [];
        }

    });
}
我的slim API如下所示:

$app->get('/getAllListings', function(){
$db = new DbHandler();
$listings = array();
$listings = $db->getAllRecords("select * from LISTINGTABLE");
echoResponse(200, $listings);
});
在我的DbHandler类中:

public function getAllRecords($query) {
    $r = $this->conn->query($query) or die($this->conn->error.__LINE__);
    return $result = $r->fetch_assoc();    
}
我只从SQL中获取一条记录

我试过:

public function getAllRecords($query) {
    $r = $this->conn->query($query) or die($this->conn->error.__LINE__);
    while ( $row = $r->fetch_array(MYSQLI_ASSOC) ) {
    $data[] = $row;
    }
    return $data[];    
}
在我的DbHandler类中,但这给了我一个错误。
有人能帮我吗?谢谢

您只请求一行。如果使用PDO,则可以执行以下操作:

$q=$db->query(“选择…”);
$results=$q->fetchAll()

如果使用mysqli,则必须遍历结果集并将行分配给数组

另外,我在代码中看到返回$data[]。您应该返回$data

public function getAllRecords($query) {
    $r = $this->conn->query($query) or die($this->conn->error.__LINE__);
    while ( $row = $r->fetch_array(MYSQLI_ASSOC) ) {
    $data[] = $row;
    }
    return $data[];    
}