我有以下函数从MySQL表中获取一些数据:
function readQuestion ($quizType, $questionId) {
$data = array();
$query = $this->dbConnection->query("SELECT * FROM $quizType WHERE id = $questionId");
foreach ($query as $row) {
var_dump($row);
};
echo $data
}
如何将所有返回的数据推送到数组中,其中每个成员都用数字索引?
我最后需要使用echo还是返回?他们似乎有同样的效果。
编辑:这是返回查询结果的正确方法吗?我把它传递给了前端。
$questionData = $controller->readQuestion($quizType, $questionId);
return $questionData;
答案 0 :(得分:0)
一般来说,您的功能必须如下:
function readQuestion ($quizType, $questionId) {
$data = array();
$query = $this->dbConnection->query("SELECT * FROM $quizType WHERE id = $questionId");
return $query;
}
但是,您必须查看$query
变量内的内容。如果它是数组 - 只返回这个数组,如果没有 - 也许它是一些迭代器,因此你必须检查它并尝试找到类似toArray
之类的方法......否则,你必须做点什么像:
$data = [];
foreach ($query as $row) {
$data[] = $row;
};
return $data;
现在您可以使用此功能,如:
var_dump(readQuestion($quizType, $questionId));
答案 1 :(得分:0)
查看有关如何保护数据的here。
无论如何,正如我在评论中所说,你不能在数组上使用echo
。你不能对var_dump
的输出做任何事情。
更改var_dump($row);
$data[] = $row;
并更改echo $data;
return $data;
答案 2 :(得分:-1)
function readQuestion ($quizType, $questionId) {
$data = array();
$query = $this->dbConnection->query("SELECT * FROM $quizType WHERE id = $questionId");
foreach ($query as $row) {
$data=$row;
};
return $result;
}