Mysql
 sql >> Database >  >> RDS >> Mysql

La funzione ricorsiva di PHP per eliminare tutti i nodi figlio provoca lo stackoverflow

Il problema è nella chiamata ricorsiva:

remrecurs($curitem['parent']);

dovrebbe essere:

remrecurs($curitem['id']);

Perché?

Il tuo obiettivo è eliminare la riga con l'ID specificato. Per prima cosa controlli per vedere se ha figli. Se sì, devi chiamare l'eliminazione ricorsiva su ciascuno dei figli non di nuovo sul genitore. Stai chiamando di nuovo la funzione in modo ricorsivo sul genitore..questo porta a infinite chiamate ricorsive, batti lo stack e vai in crash.