是否可以在PHP中检索有关MySQL资源的详细信息?

时间:2010-06-24 11:52:58

标签: php

我正在处理使用MySQL资源(public $_conn)的(PHP5)类。当我print_r($this->-conn)时,我会收到资源ID#30 等文字。

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

4 个答案:

答案 0 :(得分:4)

您的文件中应该有用户名,因此您可以创建连接资源。但您可以使用以下SQL命令获取当前用户:

SELECT CURRENT_USER();

PHP代码:

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

答案 1 :(得分:3)

没有。这不是资源的用途 - 它只是连接到远程系统(可能已经过身份验证)的占位符。

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

服务器确实需要知道哪个连接与确定权限的用户有关 - 所以一旦建立连接就可以运行查询:

SELECT CURRENT_USER();

下进行。

答案 2 :(得分:0)

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

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

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

... etc ....

我会避免以这种方式存储密码,以便它不会在完整的var转储中显示。

答案 3 :(得分:0)

尝试使用

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