Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Rekurencyjna funkcja PHP do usuwania wszystkich węzłów podrzędnych powoduje przepełnienie stosu

Problem tkwi w wywołaniu rekurencyjnym:

remrecurs($curitem['parent']);

powinno być:

remrecurs($curitem['id']);

Dlaczego?

Twoim celem jest usunięcie wiersza o podanym identyfikatorze. Najpierw sprawdź, czy ma jakieś dzieci. Jeśli tak, musisz wywołać usuwanie rekurencyjne na każdym z dzieci nie na rodzica ponownie. Ponownie wywołujesz funkcję rekursywnie na rodzicu.. Prowadzi to do nieskończonych wywołań rekurencyjnych, niszczysz stos i ulega awarii.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie mogę użyć aliasu w usuwaniu sql

  2. co tak naprawdę robi mysql_real_escape_string()?

  3. System prywatnych wiadomości. Wyświetlanie ostatniej wiadomości z każdej rozmowy

  4. MySQL LOAD_FILE zwraca NULL

  5. zły argument nr 1 dla „ipairs” (oczekiwano tabeli, otrzymano wartość logiczną)