使 fetch_assoc 与 fetch_all 完全匹配
Make fetch_assoc match fetch_all exactly
如何使用 fetch_assoc
将 fetch_all
的输出与循环精确匹配?我已经围绕 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;
}
编辑
此函数有效,但只有 returns 个结果:
public function getOneRecord($query) {
$r = $this->conn->query($query.' LIMIT 1') or die($this->conn->error.__LINE__);
return $result = $r->fetch_assoc();
}
要使 $results
包含与 fetch_all
完全相同的输出,您可以使用此循环:
while ($row = $r->fetch_assoc()) {
$results[] = array_values($row);
}
或者只在循环中使用 fetch_row
:
while ($row = $r->fetch_row()) {
$results[] = $row;
}
好的,我不知道为什么我的问题被否决了,这是合法的。 fetch_all
正如我之前使用的那样,returns 行数组作为数组。我所有的函数都是基于将这些数组解析为它们的键值。
fetch_assoc
returns 一个关联数组,在 Javascript 中被解释为一个对象。当然,我的基于数组的解析函数不喜欢这样 这也意味着循环中的 fetch_assoc
不等同于 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;
}
如何使用 fetch_assoc
将 fetch_all
的输出与循环精确匹配?我已经围绕 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;
}
编辑
此函数有效,但只有 returns 个结果:
public function getOneRecord($query) {
$r = $this->conn->query($query.' LIMIT 1') or die($this->conn->error.__LINE__);
return $result = $r->fetch_assoc();
}
要使 $results
包含与 fetch_all
完全相同的输出,您可以使用此循环:
while ($row = $r->fetch_assoc()) {
$results[] = array_values($row);
}
或者只在循环中使用 fetch_row
:
while ($row = $r->fetch_row()) {
$results[] = $row;
}
好的,我不知道为什么我的问题被否决了,这是合法的。 fetch_all
正如我之前使用的那样,returns 行数组作为数组。我所有的函数都是基于将这些数组解析为它们的键值。
fetch_assoc
returns 一个关联数组,在 Javascript 中被解释为一个对象。当然,我的基于数组的解析函数不喜欢这样 这也意味着循环中的 fetch_assoc
不等同于 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;
}