[英]get_result()->fetch_assoc() always returning 1 row
I have this php code : 我有这个php代码:
public function getcabang(){
$cabang = $this->conn->prepare("SELECT nama_cabang,alamat FROM cabang");
if ($cabang->execute()){
$cbg = $cabang->get_result()->fetch_assoc();
$cabang->close();
return $cbg;
} else {
return NULL;
}
}
but it always returning 1 row : 但它总是返回1行:
{"error":false,"cabang":{"nama_cabang":"Senayan","alamat":"Pintu 1 Senayan"}}
even though it have more than 1 row in table 即使表中有超过1行
You need to iterate to get every row, here is an example from php.net : 您需要进行迭代以获取每一行,这是php.net的示例:
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
/* free result set */
$result->free();
}
In your case, that would be : 您的情况是:
public function getcabang(){
$cabang = $this->conn->prepare("SELECT nama_cabang,alamat FROM cabang");
if ($cabang->execute()){
$cbg = array();
$result = $cabang->get_result();
while($row = $result->fetch_assoc()) {
$cbg[] = $row;
}
$cabang->close();
return $cbg;
} else {
return NULL;
}
}
Also, a better solution could be to use mysqli_fetch_all (Available only with mysqlnd) 另外,更好的解决方案是使用mysqli_fetch_all (仅适用于mysqlnd)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.