是否可以在PHP中检索有关MySQL资源的详细信息?
我正在处理使用MySQL资源(public $_conn
)的(PHP5)类。当我做print_r($this->-conn)
时,我收到一个文本,如资源ID#30。是否可以在PHP中检索有关MySQL资源的详细信息?
是否可以获取该特定资源的连接详细信息?我必须得到至少MySQL用户名?
你应该在你的文件中有用户名,所以你可以创建连接资源。但是你可以得到用下面的SQL命令将当前用户:
SELECT CURRENT_USER();
的PHP代码如下:
$result = mysql_query("SELECT CURRENT_USER()",$this->_conn);
$row = mysql_fetch_array($result);
$username = $row[0];
该死的 - 你输入的速度比我快! – symcbean 2010-06-24 12:03:08
我非常怀疑有可能从数据库资源中获取这种信息。
我经常见到的做法是在连接建立时将这些信息存储为附加变量。
$this->conn = mysql_connect(.......);
$this->info_username = $username;
$this->info_database = $database;
... etc ....
我会避免以这种方式存储密码,以便它不会在完全变量转储中可见。
我一直在试图追踪用户/传递的值,但不知何故,在某处,代码中的某个人正在用别的东西覆盖某些东西,我认为还没有能够跟踪所有对mysql_connect的调用和所有的覆盖'$ _conn'变量。 (换句话说:我需要这样做以进行调试) – Tom 2010-06-24 12:07:17
号那不是什么资源是用于 - 它只是为一个占位符连接到远程系统(可能已被认证)。
但是,如果您的代码已连接到数据库,那么它已经提供了用户名 - 为什么忘记了?
服务器不需要知道哪些方面涉及到确定哪些用户权限 - 所以这是可能的,一旦连接建立运行查询:
SELECT CURRENT_USER();
C.
尝试使用
$link = mysql_connect (...);
mysql_stat ($link);
为什么downvote? – 2010-06-24 11:57:05