繁体   English   中英

在Mysqli准备语句中返回一个数组

[英]returning an array in Mysqli prepared statement

我在我的数据库类中有一个函数,它返回来自特定国家(如西班牙)的人的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);

有谁知道如何返回一系列结果? 我试图将变量定义为数组,但仍然不起作用......

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM