【问题标题】:only getting one record on mysql data call (angular-slimphp)仅在 mysql 数据调用上获得一条记录 (angular-slimphp)
【发布时间】:2014-11-02 22:13:16
【问题描述】:

我正在尝试使用 slim php 框架作为 Angular 前端的宁静后端。 我在从我的 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 类中,但这给了我一个错误。 谁能帮我吗?谢谢!

【问题讨论】:

    标签: php angularjs rest slim


    【解决方案1】:

    您只请求一排。如果你使用 PDO,你可以这样做:

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

    如果你使用mysqli,那么你必须遍历结果集并将行分配给一个数组。

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

    【讨论】:

      猜你喜欢
      • 2021-03-27
      • 2017-08-30
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多