我的数据库类中有一个函数,它返回来自特定国家/地区的人的 id ,例如西班牙。但由于某种原因,我只获得一个价值,但有许多人拥有同一个国家。这是功能:
Class DbAb {
private $db;
public function sameCountry($country) {
$query = "SELECT id FROM users WHERE country = ? ";
$stmt = $this->db->prepare($query);
$stmt->bind_param("s", $country);
if ($stmt->execute()) {
$stmt->bind_result($sameCountry);
$stmt->fetch();
return $sameCountry;
}
return false;
}
}
$sameC = new DbAb();
$samePeople = $sameC->samecountry("spain");
print_r($samePeople);
有谁知道如何返回一系列结果?我试图将变量定义为数组,但仍无法正常工作......
答案 0 :(得分:9)
bind_result($ var)+ fetch()在$ var变量中插入一行。
如果要从方法返回一个id数组,首先需要创建一个空数组,然后为每一行插入一个空数组。
例如。替换这个:
$stmt->bind_result($sameCountry);
$stmt->fetch();
return $sameCountry;
用这个:
$arr = array();
$stmt->bind_result($id);
while ( $stmt->fetch() ) {
$arr[] = $id;
}
return $arr;