Я продолжаю получать следующую ошибку при запуске этого задания cron. Он работает каждую минуту:mysql слишком много предупреждений о соединении
Ошибки
<br />
<b>Warning</b>: mysqli_connect(): (08004/1040): Too many connections in <b>/home/eterna33/public_html/script/email_cron.php</b> on line <b>2</b><br />
<br />
<b>Warning</b>: mysqli_query() expects parameter 1 to be mysqli, boolean given in <b>/home/eterna33/public_html/script/email_cron.php</b> on line <b>6</b><br />
<br />
<b>Warning</b>: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in <b>/home/eterna33/public_html/script/email_cron.php</b> on line <b>8</b><br />
<br />
<b>Warning</b>: mysqli_close() expects parameter 1 to be mysqli, boolean given in <b>/home/eterna33/public_html/script/email_cron.php</b> on line <b>19</b><br />
Вот код, который работает в хронах каждую минуту.
<?php
$con=mysqli_connect("localhost","**","****","***");
$result = mysqli_query($con, "SELECT * FROM mail WHERE status=false");
$count="0";
while($row = mysqli_fetch_array($result)) {
$count++;
mysqli_query($con, "UPDATE mail SET status=true WHERE id='$row[id]'");
mail($row['send_to'], $row['subject'], $row['message'], $row['headers']);
mysqli_query($con, "DELETE FROM mail WHERE status=true AND id='$row[id]'");
if ($count >= 3) {
echo "exit";
mysqli_close($con);
exit;
}
}
mysqli_close($con);
?>
Я связался с хостом, но они говорят, что они «не обучены» для отладки кода. Я в убытке за то, что не так. Код функционирует нормально, он просто дает эти ошибки.
Ошибка означает, что на сервере MySQL слишком много активных подключений. Либо ваш хост должен поднять количество подключений, либо вам нужен новый хост. – Machavity
Хорошо, тогда персонал вашей хостинговой компании «некомпетентен», и я надеюсь, что вы не «платите слишком много денег» за это. Мое предложение было бы поставить таймер на ваш код, потому что он, вероятно, занимает больше минуты, чтобы завершить, а затем вы набираете копии сценария, пока не закончите соединения MySQL. Какая проблема лучше, чем нехватка памяти или ресурсов ЦП. – Sammitch
Используйте постоянные соединения. http://php.net/manual/en/mysqli.configuration.php#ini.mysqli.allow-persistent –