2010-07-16 4 views
3

기본적으로 이벤트를 수신하는 무한 루프 인 장기 실행 PHP 스크립트 (해당 xmpp 봇)가 있는데, nohup php bot.php &으로 스크립트를 시작합니다. 내가 스크립트 모든 것이 처음에 잘 작동 실행하면mysql 연결이 유효한지 확인하십시오.

스크립트의 원시 구조는

$mysqli = mysqli_connect(...); 

while(1) { 
    if(event1) { 
     // do database action 
    } else if(event2) { 
     // non database action 
     echo "something"; 
    } 
} 

같다. 몇 시간이 지나면 다시 돌아올 때 이벤트 2를 발행했지만 데이터베이스 관련 오류 (PHP 치명적 오류 : 라인 n의 비 객체에있는 멤버 함수 bind_param() 호출)로 이벤트 1을 발행 할 때 bot이 제대로 작동 함

mysql 연결을 유효하게 유지하는 방법 또는 mysqli 연결이 유효하여 다른 방법으로 다시 연결할 수 있는지 확인하는 방법이 있습니까?

답변

5

연결을 핑할 수 있습니다. http://php.net/manual/en/function.mysql-ping.php

+3

감사합니다. mysqli_ping이 (가) 작업했습니다. 내가 추가하고 싶으면, mysqli.reconnect =를 내 php.ini에 추가하여 닫으면 자동으로 다시 연결되도록해야한다. (주의 : ini_set은이 경우 작동하지 않습니다 !!) – Gunjan

+0

@Gunjan 내 의견을 보내 주셔서 대단히 감사합니다. 제 문제를 해결하는 데 도움이되었습니다. 내가 추가 한 php.ini의 지시어는'mysqli.reconnect = "1"'이었고'$ mysqli-ping()'을 코드에 추가 할 필요가 없었다. – user1477388

관련 문제