我正在處理使用MySQL資源(public $_conn
)的(PHP5)類。當我做print_r($this->-conn)
時,我收到一個文本,如資源ID#30。是否可以在PHP中檢索有關MySQL資源的詳細信息?
是否可以獲取該特定資源的連接詳細信息?我必須得到至少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