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

¿Tengo forma de evitarlo haciendo el código de otra manera?. No me doy cuenta si existe alguna forma. Quizás no esté entendiendo bien el código. En estas líneas tengo las dudas (comento debajo de cada una de estas como pienso yo que trabajan, por favor hacer un comentario si es incorrecto lo que estoy diciendo):

Código php:
Ver original
  1. for ( $i=0 ; $i<$fields_count ; $i++ )
  2.         $params[$index++] = &$cols[$i];

Acá estamos transformando a $params en un array de direcciones de memoria. Estas, apuntan a los espacios en memoria correspondientes al array $cols.

Código php:
Ver original
  1. call_user_func_array('mysqli_stmt_bind_result', $params);

Después de ejecutarse esta línea, dejamos establecido que en posteriores llamadas a mysqli_stmt_fetch() se guarden los valores de cada columna (de la fila que está siendo analizada) en el array $cols.

Código php:
Ver original
  1. $index = 0;
  2.     while (mysqli_stmt_fetch($DB_STMT))
  3.     {
  4.         for ( $i=0 ; $i<$fields_count ; $i++ )
  5.             [B]$resultset_cols[$i] = $cols[$i];[/B]
  6.         $result[$index++] = $resultset_cols;
  7.     }

Acá hacemos una copia exacta del array $cols al array $resultset_cols, y asignamos este al array $result, que va a ser el array que contiene la totalidad de los registros devueltos.
Sigo sin ver porque funciona de esta forma y no asignando directamente el array $cols.
Estaría muy agradecido si me podés marcar en donde es que estoy referenciando directamente a $cols.
Gracias por tu respuesta gatorv.
Saludos.
__________________
Add, never Remove