只获得一条关于mysql数据调用的记录(angular-slimphp)

时间:2014-11-02 14:03:39

标签: php angularjs rest slim

我正在尝试使用纤薄的php框架作为角度前端的宁静后端。 我在从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 = [];
        }

    });
}

在我的工厂:

obj.get = function(q) {
        return $http.get(serviceBase + q).then(function(results) {
            return results.data;
        });
    };

我的瘦身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类中,但这给了我一个错误。 谁能帮我吗? THX!

1 个答案:

答案 0 :(得分:0)

您只需要一行。如果您使用PDO,您可以这样做:

$q = $db->query("SELECT ... "); $results = $q->fetchAll();

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

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