Abstração Mysqli, buscando matrizes de instruções preparadas

Ultimamente, deparei-me com um erro em uma biblioteca que costumava funcionar muito bem, e ficarei condenado se puder descobrir onde está.

O exemplo de código está abaixo e peço desculpas pelo material de depuração que está dentro dele, mas estou tentando fazê-lo funcionar.

O problema é que $ temp é uma matriz com a chave correta (o nome das colunas), mas todos os valores são NULL.

Eu acho que o problema está no

call_user_func_array(array($query, 'bind_result'), $params);

pouco, mas não posso realmente envolver minha cabeça em torno disso.

public function fetchRows(){
    error_reporting(E_ALL+E_NOTICE);
    $args = func_get_args();
    $sql = array_shift($args);
    traceVar($sql, "Query");
    $colTypes = array_shift($args);
    if (!$query = $this->prepare($sql, $colTypes)) {
        die('Please check your sql statement : unable to prepare');
    }
    if (count($args)){
        traceVar($args,'Binding params with');
        call_user_func_array(array($query,'bindParam'), $args);
    }

    $query->execute();

    $meta = $query->result_metadata();
    while ($field = $meta->fetch_field()) {
        $params[] = &$row[$field->name];
    }
    traceVar($params,'Binding results with');
    call_user_func_array(array($query, 'bind_result'), $params);

    while ($query->fetch()) {
        traceVar($row,'After fetch');
        $temp = array();
        foreach($row as $key => $val) {
            $temp[$key] = $val;
        } 
        $result[] = $temp;
    }

    $meta->free();
    $query->close(); 
    //self::close_db_conn(); 
    return $result;
}

questionAnswers(2)

yourAnswerToTheQuestion