Pour tout ce qui est numérique (c'est à dire là où tu t'attends à avoir un truc numérique pour imposer une condition sur un champ SQL de type INT), je te conseille d'utiliser intval au lieu de mysql_real_escape_string.
Tout depends de le façon dont ta variable de session reçoit sa valeur !
Si c'est l'id du membre qui a été récupéré directement de ta base de données et donc dans ce cas là, non ! Maintenant, si la valeur contenu de ta variable vient de l'extérieur de ton serveur, alors là OUI !
Dans tous les cas, si le champ SQL est de type INT, c'est intval que l'on doit utiliser, peu importe ce que contient ta variable de session.
MySQL s'attend à recevoir un INT, tu lui fournis un INT avec intval.
Puis de toutes facons, si tu ne fournis pas un INT à MySQL, il se le fera tout seul son intval, donc autant passer cette étape et lui fournir directement un INT.
mysql> CREATE TABLE `test` (`champ` INT NOT NULL);
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO test (champ) VALUES ('123test');
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> SELECT * FROM test;
+-------+
| champ |
+-------+
| 123 |
+-------+
1 row in set (0.00 sec)
MySQL fait son propre intval, donc autant le faire avant lui et éviter de lui fournir une string (car le intval PHP aurait directement transformé la chaine en '123').