Попробуйте это простое упражнение : добавьте оператор echo / print прямо в функцию checkId, которая печатает значение $ n ... Вы должны заметить, что значение $ n будет таким же100 раз подряд вплоть до появления фатальной ошибки.
Причина : В выражении checkId($n++)
вы используете ++
в качестве оператора "постфиксного приращения".Это означает, что переменная $n
будет увеличиваться только после вызова вложенной функции checkId(...)
.В основном это:
checkId($n++)
... это просто сокращение для этого:
checkId($n)
$n = $n + 1
Второй вызов checkId
(с тем же значением $n
)в конечном итоге вызовет checkId($n++)
, что вызовет третий вызов с точно таким же значением $n
, и так далее, пока PHP не скажет "это слишком много" и не будетвверх с "Фатальной ошибкой" ... которая является ошибкой "Переполнения стека", кстати: P
Вместо , используйте префикс приращение выражение checkId(++$n)
или что-то тривиально простое, например checkId($n + 1)
. Или, еще лучше, , выясните, как выполнить работу за один ОДИН вызов mysqli_query
(кстати, это отдельный вопрос).Думая, что вы можете просто делать запросы несколько раз, пока не получите что-то правильное, значит, ваше приложение не будет настолько масштабируемым, если / когда вы получите кучу людей, использующих его. Просто позвольте базе данных сделать тяжелую работу. :)