我想用PHP脚本检索存储在mySQL表中的数据。我希望这些数据以数组形式返回,因为我在AngularJS应用程序中循环遍历它,并进行各种转换等。我将数据从数据中提取出来,但它仅作为数组中的一个项返回,即每行都是不作为数组的单独项返回。因为它代表我的代码是:mySQL没有返回一个数组到angularJS
PHP Get请求
<?php
require 'config.php';
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT * FROM user_details';
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($result);
echo $json;
Database::disconnect();
?>
角控制器
$scope.userprofiles = [];
$http.get('php/getUserDetails.php')
.success(function(data) {
$scope.userprofiles = data;
});
我也运行一些测试,看看是什么问题。具体来说,我看是否变量是一个数组:
$scope.varcheck = $scope.userprofiles.constructor === Array;
这将返回true。然后我检查数组的长度:
$scope.numRecords = $scope.userprofiles.length;
这回0
如果任何人有任何的想法这将是一个很大的帮助。
我也有一个问题,如果一个“/”或“”“存储在数据库中,它会引发get请求。我认为它提前退出。如果有人知道这件事,它会很棒!
感谢,
杰克
你可以使用'typeof'来获取数据类型。 – Vineet
嗨维尼。当我尝试typeof时,它返回的是数据是一个对象,而不是数组。看来PHP中的json_encode将数组转换为对象而不是数组。你知道如何将它作为一个对象数组而不是仅仅一个对象出现吗? –
嗨。所以我发现问题是什么。我试图访问.then函数之外的$ scope.userprofiles。所以我可以把所有的代码放在.then函数中。但这似乎是一个相当不雅的解决方案。你知道是否有另一个? –