使用fetch时,Array仅返回最后一项

时间:2012-10-19 16:45:12

标签: php arrays while-loop return fetch

我正在尝试将数据库结果返回到数组。使用fetch时,它只返回数组中的最后一项。

如果我写$ result [$ this-> topic]。= $ a而不是$ result [$ this-> topic] = $ a,数组会返回所有项目,但只返回一个字符串。

我的数据库类中的函数,带有while循环:

        public function GetTopic($stmt) {

        if ($stmt->execute() == false) {
            throw new Exception($this->mysqli->error);
        }

        $stmt->bind_result($a); 
        $result = array();

        while ($stmt->fetch()) {
            $result[$this->topic] = $a;
        }

        $stmt->close();

        var_dump($result);
        return $result;
    }

我的Handler类中的函数,我从数据库类调用函数:

        public function GetTopics() {

        $query = "SELECT Topic FROM question";
        $stmt = $this->db->Prepare($query);
        $result = $this->db->GetTopic($stmt);

        return $result;
    }

我也尝试过使用num_rows和store_result而不是fetch,这也不起作用。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

$result[$this->topic][] = $a;