PHP SQL $ stmt-> fetch()将数组推入另一个数组

时间:2018-12-04 16:27:49

标签: php sql

$ stmt-> fetch()有一些问题

我有一个名为$ row的变量,它由$ row ['id']和$ row ['name']组成。 在$ stmt-> fetch()循环中,我要将行追加到$ result数组。 但是,如果打印$ result数组,则它仅包含在最后一行之外。

这是我的代码:

function queryResult($sql, $params, $columNames) {

    $result = [];
    $row = [];
    $bindVars = [];

    for ($i = 0; $i < sizeof($columNames); $i++) {
        $bindVars[] = &$row[$columNames[$i]];
    }

    $stmt = $this->query($sql, $params);
    call_user_func_array([$stmt, 'bind_result'], $bindVars);

    while ($stmt->fetch()) {
        print_r($row);
        echo '<br>';
        array_push($result, $row);
        print_r($result);
        echo '<br><br>';
    }

    return $result;

}

这是结果:

Array ( [id] => 2 [name] => Test2 ) 
Array ( [0] => Array ( [id] => 2 [name] => Test2 ) ) 

Array ( [id] => 3 [name] => Test3 ) 
Array ( [0] => Array ( [id] => 3 [name] => Test3 ) [1] => Array ( [id] => 3 [name] => Test3 ) ) 

1 个答案:

答案 0 :(得分:0)

在第14行中,我认为应该使用while($row=mysqli_fetch_array($stmt))