Php Mysqli Постоянная ошибка соединения - PullRequest
1 голос
/ 05 октября 2010

У меня есть проблема в моем скрипте, которая иногда появляется, обычно, когда я оставляю его на некоторое время (например, 5-10 минут) без запросов, я получаю эту ошибку:

Предупреждение: mysqli_connect ()[function.mysqli-connect]: сервер MySQL исчез в FILE.php в строке 30

, и этот код выдает ошибку:

$ this-> db = mysqli_connect ('p:'. $ this-> db_host, $ this-> db_user, $ this-> db_pwd, $ this-> db_name);

Кодсодержится в одноэлементном классе, и в настоящее время я разрабатываю для Windows7 с

  • Apache 2.2.11
  • MySQL 5.1.36
  • PHP 5.3.0

(я использую WampServer 2.0i), но я, очевидно, буду использовать Linux на конечном сервере.

Спасибо.

Ответы [ 3 ]

1 голос
/ 04 января 2012

Это просто ... PHP 5.1 не поддерживает его

http://php.net/manual/en/mysqli.persistconns.php

требует PHP 5.3

0 голосов
/ 29 августа 2014

Проверьте значения тайм-аута на вашем сервере MySQL, особенно connect_timeout и wait_timeout.

Когда соединение закрывается по таймауту, вам необходимо повторно подключиться -> что должно быть сделано вашим приложением.

0 голосов
/ 05 октября 2010

Проверяете ли вы ошибки после подключения? Это может выявить необходимость повторного подключения. Хотя, глядя на документацию, кажется, что нет никакого способа заставить mysqli создать новое соединение.

Вы можете использовать mysqli_ping() для проверки сервера перед каждым обращением к базе данных, но это довольно сложно, если у вас есть куча.

Еще одна вещь, которую нужно сделать, если вы управляете сервером MySQL или находитесь в хороших отношениях с человеком, который это делает, - это увеличить время простоя на самом сервере.

Лично, ИМХО, постоянные соединения содержат ошибки в PHP, и если у вас нет сайта с очень большим трафиком, увеличения скорости недостаточно, чтобы оправдать эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...