У меня длинный сценарий php, который в основном представляет собой бесконечный цикл, который прослушивает события (его бот xmpp), я запускаю скрипт с nohup php bot.php &
.
Необработанная структура скрипта похожа на
$mysqli = mysqli_connect(...); while(1) { if(event1) { // do database action } else if(event2) { // non database action echo "something"; } }
Когда я запускаю скрипт, все работает нормально. Когда я вернусь через несколько часов, бот отлично работает, если я выдаю событие2, но не смог выполнить событие1 с ошибкой, связанной с базой данных (PHP Fatal error: вызов функции-члена bind_param () для не-объекта в строке n)
Как я могу сохранить соединение mysql действительным или есть способ проверить, действительно ли соединение mysqli действительно, чтобы я мог снова подключиться?
вы можете выполнить ping-соединение http://php.net/manual/en/function.mysql-ping.php