如何使用fetch_all
完全匹配fetch_assoc
的输出与循环?我已经在fetch_all
周围构建了代码,但我的带有PHP 5.4的Bluehost服务器不足以运行它(我正在与他们谈论它)。这是我一直在使用的,它不起作用:
public function getAllRecords($query) {
$results = array();
$r = $this->conn->query($query) or die($this->conn->error.__LINE__);
while ($row = $r->fetch_assoc()) {
$results[] = $row;
}
return $results;
}
修改
此功能有效但只返回一个结果:
public function getOneRecord($query) {
$r = $this->conn->query($query.' LIMIT 1') or die($this->conn->error.__LINE__);
return $result = $r->fetch_assoc();
}
答案 0 :(得分:2)
要让$results
包含与fetch_all
完全相同的输出,您可以使用此循环:
while ($row = $r->fetch_assoc()) {
$results[] = array_values($row);
}
或仅在循环中使用fetch_row
:
while ($row = $r->fetch_row()) {
$results[] = $row;
}
答案 1 :(得分:0)
好的,我不知道为什么我的问题被投票,这是合法的。我之前使用fetch_assoc
,将数组作为数组返回。我的所有函数都基于将这些数组解析为其键值。
fetch_assoc
返回一个关联数组,在Javascript中将其解释为一个对象。当然,我的基于数组的解析函数不喜欢它,也意味着循环中的fetch_all
不等同于fetch_row
。
等同于public function getAllRecords($query) {
$results = array();
$r = $this->conn->query($query) or die($this->conn->error.__LINE__);
while ($row = $r->fetch_row()) {
$results[] = $row;
}
return $results;
}
。正确答案:
@app.route('/add/<int:n1>,<int:n2>')
def add(n1,n2):
sum = n1+n2
return "%d" % (sum)