-1
이 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
그러면 호스팅 회사의 직원이 "무능력합니다"라고 말하면서 "돈을 많이 내고 싶지 않다"고 생각합니다. 내 제안은 아마 당신의 코드에 타이머를 넣는 것일 것이다. 왜냐하면 아마도 1 분 이상 걸리고 나서 MySQL 연결이 끊어 질 때까지 스크립트 사본을 쌓아 올리기 때문이다. 메모리 나 CPU 리소스가 부족한 대신에 더 좋은 문제는 무엇입니까? – Sammitch
영구 연결을 사용합니다. http://php.net/manual/en/mysqli.configuration.php#ini.mysqli.allow-persistent –