2010-06-24 37 views
2

我正在处理使用MySQL资源(public $_conn)的(PHP5)类。当我做print_r($this->-conn)时,我收到一个文本,如资源ID#30是否可以在PHP中检索有关MySQL资源的详细信息?

是否可以获取该特定资源的连接详细信息?我必须得到至少MySQL用户名?

+1

为什么downvote? – 2010-06-24 11:57:05

回答

4

你应该在你的文件中有用户名,所以你可以创建连接资源。但是你可以得到用下面的SQL命令将当前用户:

SELECT CURRENT_USER(); 

的PHP代码如下:

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

该死的 - 你输入的速度比我快! – symcbean 2010-06-24 12:03:08

0

我非常怀疑有可能从数据库资源中获取这种信息。

我经常见到的做法是在连接建立时将这些信息存储为附加变量。

$this->conn = mysql_connect(.......); 
$this->info_username = $username; 
$this->info_database = $database; 

... etc .... 

我会避免以这种方式存储密码,以便它不会在完全变量转储中可见。

+0

我一直在试图追踪用户/传递的值,但不知何故,在某处,代码中的某个人正在用别的东西覆盖某些东西,我认为还没有能够跟踪所有对mysql_connect的调用和所有的覆盖'$ _conn'变量。 (换句话说:我需要这样做以进行调试) – Tom 2010-06-24 12:07:17

3

号那不是什么资源是用于 - 它只是为一个占位符连接到远程系统(可能已被认证)。

但是,如果您的代码已连接到数据库,那么它已经提供了用户名 - 为什么忘记了?

服务器需要知道哪些方面涉及到确定哪些用户权限 - 所以这是可能的,一旦连接建立运行查询:

SELECT CURRENT_USER(); 

C.

0

尝试使用

$link = mysql_connect (...); 
mysql_stat ($link); 
相关问题