2010-06-24 3 views
2

Я имею дело с классом (PHP5), который использует ресурс MySQL (public $_conn). Когда я делаю print_r($this->-conn), я получаю текст, такой как Идентификатор ресурса # 30.Возможно ли получить подробную информацию о ресурсе MySQL в PHP?

Возможно ли получить сведения о соединении для данного ресурса? Мне нужно получить хотя бы имя пользователя MySQL?

+1

Почему downvote? –

ответ

4

У вас должно быть имя пользователя где-то в ваших файлах, поэтому вы можете создать ресурс соединения. Но вы можете получить текущий пользователь с помощью следующей SQL команды:

SELECT CURRENT_USER(); 

РНР кода для этого:

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

проклятье - вы набираете быстрее меня! – symcbean

0

Я очень сомневаюсь, что можно получить такую ​​информацию из ресурса базы данных.

Практика, которую я часто видел, заключается в том, чтобы хранить такую ​​информацию, как дополнительные переменные, в момент установления соединения.

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

... etc .... 

Я бы не стал хранить пароль таким образом, чтобы он не стал видимым в полном дампе вар.

+0

Я пытался отслеживать значения для пользователя/pass, но каким-то образом кто-то из этого кода перезаписывает что-то еще, и я думаю, что не удалось проследить все вызовы mysql_connect и все перезаписи переменная '$ _conn'. (другими словами: мне нужно сделать это для отладки) – Tom

3

Нет, это не то, что ресурс предназначен для - его просто заполнителя для соединение с удаленной системой (возможно, оно было аутентифицировано).

Но если ваш код подключен к базе данных, то он уже предоставил имя пользователя - почему он забыл?

Сервер делает нужно знать, какое соединение имеет отношение к тому, что пользователь для определения прав - так можно после того, как соединение установлено, чтобы выполнить запрос:

SELECT CURRENT_USER(); 

C.

0

Попробуйте использовать

$link = mysql_connect (...); 
mysql_stat ($link); 
Смежные вопросы