Si hago por ejemplo $result[0][0] no me muestra nada. La consulta que estoy realizando tendría que arrojar un resultado que consta de un solo registro, pero de esta forma no accedo a los valores.
Si, es un tema complejo, pero por suerte ya pase esa etapa de andar desorientado con los punteros. Manejé bastante de ellos en C hace un tiempo para un proyecto de la facultad.
Gracias gatorv por tu respuesta.
Saludos.
Perdon gatorv, leí apurado tu post y no vi que me marcabas $result[$num_fila][
$nombre_columna]. Pude solucionarlo de esa forma. Gracias de nuevo.
Saludos.
Volví a modificar la función anterior para que en lugar de acceder a los resultados como un array asociativo pueda accederlo por sus índices. Así es como me quedó:
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;
$fields_count = mysqli_num_fields($meta);
$index = 1;
for ( $i=0 ; $i<$fields_count ; $i++ )
$params[$index++] = &$cols[$i];
call_user_func_array('mysqli_stmt_bind_result', $params);
$index = 0;
while (mysqli_stmt_fetch($DB_STMT))
{
for ( $i=0 ; $i<$fields_count ; $i++ )
$resultset_cols[$i] = $cols[$i];
$result[$index++] = $resultset_cols;
}
echo($result[0][0]);
mysqli_stmt_close($DB_STMT);
}
En la parte del código que está remarcada en negrita, hago una copia exacta de cada fila del resultset y luego lo añado al resultado que devuelvo. Mi pregunta es ¿Por qué es necesario realizar esta copia? ¿Por qué no puedo ejecutar la sentencia
$result[$index++] = $cols;?. Me fije en la página donde obtuve el código y no dice nada al respecto.
Saludos.