2010-06-24 72 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); 
相關問題