В общих чертах, я не думаю, что это действительно возможно, по крайней мере, с помощью какого-то сложного обходного пути. Например, вы можете перебрать все определенные переменные:
foreach(get_defined_vars() as $variable){
if( is_resource($variable) && get_resource_type($variable)=='mysql link' ){
// Found a connection!
var_dump($variable);
}
}
Хотя на самом деле соединение остается доступным, даже если он назначен локальной переменной вне текущей области:
function foo(){
$conn = mysql_connect('localhost', 'test', 'test');
}
foo();
$res = mysql_query('SELECT NOW() AS what_is_the_time');
if( $row = mysql_fetch_assoc($res) ){
var_dump($row);
}
Проблема в том, что PHP на самом деле не заботится о переменных, когда речь идет о соединениях:
// One connection and zero variables!
mysql_connect('localhost', 'test', 'test');
$res = mysql_query('SELECT NOW() AS what_is_the_time');
if( $row = mysql_fetch_assoc($res) ){
var_dump($row);
}
Вы можете попробовать найти информацию о текущем соединении:
var_dump(mysql_thread_id());
// int(2696)
... хотя многие функции просто попытаются установить новое соединение, если его нет, поэтому должны позаботиться о предупреждениях ...:
Предупреждение: mysql_thread_id (): доступ запрещен для пользователя '' @ 'localhost' (используется пароль: НЕТ)
BOOL (ложь)
... если только ваша конфигурация фактически не допускает успешной попытки подключения без полномочий.
Я почти уверен, что все, что вы хотите сделать, можно сделать совершенно по-другому:)