У меня есть ситуация, когда я использую TableRegistry CakePHP в сценарии, который действует как сервер. Сначала он работает, но если не было трафика в течение одного дня, сервер все еще работает, но как только TableRegistry используется, он выдает следующую ошибку:
Ошибка предупреждения: ошибка при отправке пакета QUERY. PID = 2536 в [..vendor \ cakephp \ src \ Databse \ Statement \ MysqlStatement.php, строка 39]
Поиск в Google по ошибке приводит к:
MySQL имеет ограничение на размер данных
Что не может быть так, поскольку запрос и соответствующий результат действительно малы. У меня такое чувство, что внутреннее соединение CakePHP Mysql как-то истекло.
Вот моя кодировка для воспроизведения ошибки:
namespace WebsocketServer;
//load the cakePHP classes
require_once '../config/bootstrap.php';
use Cake\ORM\TableRegistry;
class Server {
public function query() {
//any data fetch mockup (the
$data = TableRegistry::get('Screens')->find()->all()->toArray();
}
}
$server = new Server();
//querying works perfecly
$server->query();
//wait for a day
sleep(60*60*24);
//querying results in an error
$server->query();
Задача ещё не решена.
Других решений пока нет …