Hola aloon,
La funcion encargada de convertir el resultado en un array no está implementada correctamente (la de los loops), no se muy bien del todo como hacerlo, porque al querer hacer algo estandarizado para todo tipo de consultas, es decir, para consultas que devuelvan distinto número de columnas de datos, ejemplo, que funcione para una "SELECT id, name..." igual que para un "SELECT id...". Para extraer la información usando STMT hay que llamar previamente a la funcion
mysqli_stmt_bind_result e indicar las variables donde se van a almacenar los resultados, sacando fila a fila con
mysqli_stmt_fetch. Espero explicarme bien. Os dejo la última función que estoy probando... sigo en las mismas :S
Código PHP:
public function query2array(){
$row_array = array();
$resul_array = array();
while ($field = mysqli_fetch_field($this->resultado))
$row_array[$field->name]="";
$args = array_merge(array($this->stmt),$row_array);
call_user_func_array('mysqli_stmt_bind_result',$args);
while ($row = mysqli_stmt_fetch($this->stmt))
$resul_array[] = $row_array;
return $resul_array;
}