PHP에서 mysqli 클래스를 사용하는 데 문제가 있으며 어디서나 답변을 찾을 수 없습니다.PHP mysqli 다시 연결 문제
내 스크립트에서는 클래스가 함수 전체에서 사용하는 mysqli 연결을 만듭니다. 그 후에이 스크립트가 실행됩니다. 연결은 아이들도 사용하지만 아이가 죽을 때 부모에게 연결이 끊어지는 문제 (MYSQL Server가 사라짐)에 직면하고 있습니다.
mysql을 mysql으로 바꾸기 전에 mysql_ping을 호출하여 상위 프로세스에서 쿼리를 수행하기 전에 db 연결이 있는지 확인했다. Mysqli는 비슷한 ping 기능을 가지고 있지만 연결이 끊어지면 실제로 다시 연결하지 않습니다. 나는 mysqli.reconnect = ON 전역 설정을 사용하지 않으려 고 노력했다. (php.ini와 ini_set 사용).
php mysql_connect 함수를 사용하면 이미 존재하는 연결을 잡을 수 있으므로 mysqli 대신 mysql을 사용하는 경우 fork 된 프로세스가 끝난 직후 자식에서 연결을 간단히 재사용 할 수있다. 하지만 mysqli는 그런 기능을 갖고 있지 않은 것 같습니다 ...
내가 할 수 있었던 유일한 일은 mysqli-> ping()을 호출하고 false를 반환 한 다음 부모의 데이터베이스에 다시 연결하는 것입니다. 이것은 대단히 비효율적이며, mysqli (그리고 수동 재 연결이 필요 없음)를 사용하여 올바르게 수행하는 방법을 알아내는 편이 낫다.
제안 사항이 있으십니까?
그게 효과가 있어요. 나는이 변수를 변경하기 위해 ini_set을 사용할 수 없다는 것을 깨닫지 못했고, 나는 천재였습니다. 이미 php.ini에 라인을 추가했는데, 이미 mysli.reconnect = 줄을 더 내려 놓았습니다. 파일. 하지만 그걸 제거하고 mysqli.reconnect를 사용하면 mysqli-> ping()이 mysql_ping과 같이 작동한다. 도와 주셔서 감사합니다! –