db 연결이 PHP에서 열려 있는지 어떻게 확인할 수 있습니까?실제 열린 db 연결 얻기
어떻게이 연결에 대한 참조를 얻을 수 있습니까?
MySQL, Postgres 또는 다른 항목인지 어떻게 확인할 수 있습니까?
db 연결이 PHP에서 열려 있는지 어떻게 확인할 수 있습니까?실제 열린 db 연결 얻기
어떻게이 연결에 대한 참조를 얻을 수 있습니까?
MySQL, Postgres 또는 다른 항목인지 어떻게 확인할 수 있습니까?
이상적으로 연결이 저장되는 변수를 알 수 있습니다. 이것 없이는 그것을 찾는 번거 로움이됩니다. 그것은 모든 변수를 반복하고 각각을 테스트해야한다는 것을 의미하지만, 현재 범위 밖에있는 변수를 찾지 못하기 때문에 어떤 이유로 든 이것을 수행하는 것이 어려울 수 있습니다. 당신은 그것의 연결 알게되면
if(mysql_thread_id($connection){
// Connection exists
}
: 당신은 루프 현재의 변수가 사용 할 수 있습니다 변수가 당신이 아래의 코드를 사용할 수있는 유효한 연결이있는 경우
foreach(get_defined_vars() as $x){
// Code
}
확인하기 위해서는 정수를 반환해야합니다 다음을 사용하여 mysql과 같은 연결 유형을 리턴 할 수있다.
echo get_resource_type($connection);
정의 된 모든 변수를 반복하고 리소스 핸들인지 아닌지 알아 내야합니다. 시도하십시오 get_defined_vars().
일반적으로 나는 그것이 가능한 일이라고 생각하지 않는다. 적어도 일종의 복잡한 해결 방법은 아니다. 할 수 있습니다, 정의 된 모든 변수를 통해 예, 루프 :
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);
}
당신은 시도하고 현재 연결에 대한 정보를 찾을 수 있습니다
하나 그래서 경고주의해야이없는 경우 대부분의 기능은 단지 새로운 연결을 stablish하려고 시도하지만var_dump(mysql_thread_id());
// int(2696)
... ... :
경고 : mysql_thread_id() : 액세스가 사용자에 대한 거부 ''@ '(암호를 사용하여 : NO)'로컬 호스트하지 실제로 성공적인 자격이없는 connnection 시도를 할 수 있습니다 your configuration하지 않는 (false)를
부울
을 ....
나는, 당신이 원하는 어떤 것을 확신 완전히 다른 방법 :
무엇 DB 라이브러리에 할 수 있는가? –
mysql_connect()와 pg_connect()로 DB를 열면 특별한 라이브러리는 사용하지 않습니다. – user1027167
(잠재적으로) 열린 연결의 변수 이름을 알고 있습니까? – ManseUK