Vincule parâmetros mysqli_stmt dinamicamente e, em seguida, vincule o resultado (PHP)

Estou tentando ligar dinamicamente parâmetros mysql_stmt e obter o resultado em uma matriz associativa. Encontrei esta postagem aqui no stackoverflow em que Amber postou uma resposta com o seguinte código:

Post original:Como criar uma classe de extensão mysqli adequada com instruções preparada

"Supondo que você realmente queira escrever sua própria versão (em vez de utilizar uma das bibliotecas existentes, outras respostas sugeriram - e essas são boas opções também) ...

Aqui estão algumas funções que você pode achar útil examinar. A primeira permite vincular os resultados de uma consulta a uma matriz associativa e a segunda permite passar duas matrizes, uma matriz ordenada de chaves e a outra uma matriz associativa de dados para essas chaves e ter esses dados vinculados a uma declaração preparada: "

function stmt_bind_assoc (&$stmt, &$out) {
    $data = mysqli_stmt_result_metadata($stmt);
    $fields = array();
    $out = array();

$fields[0] = $stmt;
$count = 1;

while($field = mysqli_fetch_field($data)) {
    $fields[$count] = &$out[$field->name];
    $count++;
}
call_user_func_array(mysqli_stmt_bind_result, $fields);

}

function stmt_bind_params($stmt, $fields, $data) {
    // Dynamically build up the arguments for bind_param
    $paramstr = '';
    $params = array();
    foreach($fields as $key)
    {
        if(is_float($data[$key]))
            $paramstr .= 'd';
        elseif(is_int($data[$key]))
            $paramstr .= 'i';
        else
            $paramstr .= 's';
        $params[] = $data[$key];
    }
    array_unshift($params, $stmt, $paramstr);
    // and then call bind_param with the proper arguments
    call_user_func_array('mysqli_stmt_bind_param', $params);
}

Tentei estudar o código para entender o que ele faz e fiz a segunda função funcionar corretamente, mas não sei o que devo fazer para poder utilizar a primeira função. Como usá-lo para recuperar uma matriz semelhante ao mysqli_result :: fetch_assoc ()?

Eu quero poder utilizar o resultado da maneira que você costumava fazer com:

while ($row = mysql_fetch_array($result)){
  echo $row['foo']." ".$row['bar'];
}

Por favor me ajude a fazer algum progresso com isso:)

questionAnswers(4)

yourAnswerToTheQuestion