Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绑定到类属性并获取到数组-php mysqli bind_result_Php_Mysqli_Bind_Prepare - Fatal编程技术网

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

绑定到类属性并获取到数组-php mysqli bind_result,php,mysqli,bind,prepare,Php,Mysqli,Bind,Prepare,我试着这样做: class kategoria { public $IdKat; public $IdKatNad; public $NazwaKat; } function get_cats() { $query = "SELECT IdKat, NazwaKat, OpisKat FROM `kategorie`"; try { $stmt = $this->link->prepare($query

我试着这样做:

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>';
}
在末尾-我只有数组中的最后一行。为什么?当我尝试使用数组和2个字段时,并没有使用kategoria类,这是可行的,但我需要将查询结果放入表示表行的对象数组中。我做错了什么?我是PHP新手

$output[] = array(clone $kat); // or array_push($output, array(clone $kat));
如果试图附加到$output数组,则语法为

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

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

我必须序列化和反序列化绑定到结果集的类


进一步阅读:array_merge vs array union operator:我有两个疑问。你为什么要使用arrayclone$kat。它不应该只是“=clone$kat”。而克隆只能进行浅层复制。那么,在上述情况下,这段代码会起作用吗?@WordsWorth我只是使用了OP代码中相同的赋值。我不知道他对它的意图是什么,因为他只是在打印它。数组推送正在工作,数组在增长,但现在我有许多只从表的最后一行创建的对象。克隆不起作用?我需要在我的while循环?@Kamil中创建变量,因为你在循环结果,但一遍又一遍地克隆同一个$kat对象。您需要在循环中分配$kat,以便在将其附加到数组之前更改它。
$output += array(deserialize(serialize($kat)));