2010-06-24 3 views

Répondre

4

Vous devriez avoir le nom d'utilisateur quelque part dans vos fichiers, ainsi vous pouvez créer la ressource de connexion. Mais vous pouvez obtenir l'utilisateur en cours avec la commande SQL suivante:

SELECT CURRENT_USER(); 

Le code PHP pour cela:

$result = mysql_query("SELECT CURRENT_USER()",$this->_conn); 
$row = mysql_fetch_array($result); 
$username = $row[0]; 
+0

putain - vous tapez plus vite que moi! – symcbean

0

Je doute vraiment qu'il soit possible d'extraire ce genre d'information d'une ressource de base de données.

Une pratique que j'ai souvent vue est de stocker de telles informations en tant que variables supplémentaires au moment où la connexion est établie. J'éviterais de stocker le mot de passe de cette façon afin qu'il ne devienne pas visible dans un vidage complet de var.

+0

J'ai essayé de tracer les valeurs pour user/pass, mais quelque part, quelqu'un dans le code écrase quelque chose avec quelque chose d'autre et je pense qu'il n'a pas été capable de tracer tous les appels à mysql_connect et tous les écrasements de la variable '$ _conn'. (en d'autres termes: j'ai besoin de faire cela pour le débogage) – Tom

3

Non, ce n'est pas ce que la ressource est destinée à - juste un espace réservé pour le connexion au système distant (qui peut avoir été authentifié).

Mais si votre code est connecté à la base de données, il a déjà fourni le nom d'utilisateur - pourquoi a-t-il oublié?

Le serveur ne besoin de savoir ce qui se rapporte à la connexion ce que l'utilisateur pour déterminer les autorisations - il est donc possible, une fois que la connexion est établie pour exécuter une requête:

SELECT CURRENT_USER(); 

C.

0

Essayez d'utiliser

$link = mysql_connect (...); 
mysql_stat ($link); 
Questions connexes