我正在处理使用MySQL资源(public $_conn
)的(PHP5)类。当我print_r($this->-conn)
时,我会收到资源ID#30 等文字。
是否可以获取该特定资源的连接详细信息?我必须至少获得MySQL用户名?
答案 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);