绑定到类属性并获取到数组php mysqli bind_result


Binding to class properties and fetching to array - php mysqli bind_result

我正在尝试这样的东西:

class kategoria
{
    public $IdKat;
    public $IdKatNad;
    public $NazwaKat;
}
function get_cats()  
{  
    $query = "SELECT IdKat, NazwaKat, OpisKat  FROM `kategorie`"; 
    try
    {
        $stmt = $this->link->prepare($query);
        /* bind parameters for markers */
        //$stmt->bind_param("i", $idKat);
        $stmt->execute();
        $kat = new kategoria();
        $stmt->bind_result(
                $kat->Idkat, 
                $kat->NazwaKat, 
                $kat->OpisKat
                );

        $output = array();
        while ($stmt->fetch()) {
            $output += array(clone $kat);
        }
        $stmt->close();
    }
    catch (Exception $e)
    {
        echo $e;
    }
    echo '<pre>';
    print_r($output);
    echo '</pre>';
}

最后,我只有数组中的最后一行。为什么?当我尝试在没有"kategoria"类的情况下使用数组(和2个字段)时,它是有效的,但我需要将查询结果放在表示表行的对象数组中。我做错了什么?我是PHP新手。

$output += array(clone $kat);

如果您试图附加到$output数组,语法为.

$output[] = array(clone $kat); // or array_push($output, array(clone $kat));

在PHP中将数组添加到一起会合并它们,这似乎不是您想要的。

我不得不序列化和反序列化绑定到结果集的类。

$output += array(deserialize(serialize($kat)));