Código PHP:
Ver original//conexion a bdd
$host="localhost";
$userbdd="root";
$pass="";
$schema="telmexge";
$mysqli = new mysqli($host,$userbdd,$pass,$schema);
}
//Hacemos query
$id_user=1;
$query="SELECT id_rol FROM user_rol WHERE id_user=?";
if ($sentencia = $mysqli->prepare($query)) {
//ESCAPAMOS
$id= $mysqli->real_escape_string($id_user); //estoy casi seguro que no es necesario ademas esto va antes y lo tenias declarado depues, ya que bind param recibe $id
//ENVIAMOS LOS PARAMETROS
$sentencia->bind_param('i', $id);
/* ejecutar la sentencia */
$sentencia->execute();
if ($sentencia->errno) {
echo "FAILURE!!! " . $sentencia->error();
}
$sentencia->store_result(); //Tuve problemas para hacerlo funcionar local asi que use esto para poder usar num_rows con consultas preparadas
//siguiendo tu cod
if($sentencia->num_rows < 1){ //la sentencia es la que tiene los num_rows no el resultado
echo "notFound";
}else{
$sentencia->bind_result($id_rol); //como tu consulta solo retorna valores de una sola columna vinculamos las variables del resultado
//EN ESTA PARTE NECESITO EN LUGAR DEL PRINT GUARDAR EN SESSION TODAS //LAS FILAS HAYADAS.
//print_R($result);
$roles = array(); //array temporal que tendra los roles del usuario //RESULTADO EN ARRAY ASOCIATIVO
while($result = $sentencia->fetch()){ //declaramos el fetch en el while para poder realizar la iteracion de los arrays
$roles[] = $id_rol; //guardamos el rol en el array declarado arriba
}
$_SESSION['user']['roles'] = $roles; //guardamos el array en una sesion
var_export($_SESSION['user']['roles']); //verificamos que los valores sean los correctos output array(1,2,3) }
$sentencia->close();
}
info de store_result
aqui
Revisalo y compáralo con el que tenias y nos cuentas
Saludos