Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2008, 20:27
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Generalizar prepared statements

Hola. Estoy trabajando con prepared statements y quiero generalizar para un número X de columnas de la consulta. El código que utilizo, el cual es una adaptación de un código que encontré en la red, es el siguiente:

Código:
function db_pquery_resultset()
{
    global $DB_CONN;
    global $DB_STMT;
    
    mysqli_stmt_execute($DB_STMT);
    
    $meta = mysqli_stmt_result_metadata($DB_STMT);
    $params[0] = &$DB_STMT;
    $index = 1;
    while ($field = mysqli_fetch_field($meta))
    {
        $params[$index++] = &$row[$field->name];
    } 
    
    call_user_func_array('mysqli_stmt_bind_result', $params);

    $index = 0;

    while (mysqli_stmt_fetch($DB_STMT)) {
            foreach($row as $key => $val)
            {
                $c[$key] = $val;
            }
            $result[$index++] = $c;
        }
        
    print_r($result);

    mysqli_stmt_close($DB_STMT);    
    

    
    
}
Antes de ejecutar esta función, inicializo la consulta y hago el enlace de los parametros que recibe la consulta parametrizada (valga la redundancia). Una vez finalizado esto, entonces si ejecuto esta función. Cuando, ejecuto la línea marcada en rojo, se me muestra por pantalla algo así:

Array ( [0] => Array ( [nombre_columna1] => valor_columna1 [nombre_columna2] => valor_columna2 ) )

Pero esto no es lo que quiero. Lo que me gustaría hacer es crear un array multidimensional para poder acceder a los valores de cada fila-columna de esta forma:

$resultset[$indice_fila][$indice_columna].
¿Existe alguna forma de hacerlo?.

Algo que no entiendo del código es que función cumple el operador '&'. ¿Es el operador de dirección, al igual que en C?.
__________________
Add, never Remove