Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Fungsi rekursif PHP untuk menghapus semua node anak menyebabkan stackoverflow

Masalahnya ada di panggilan rekursif:

remrecurs($curitem['parent']);

seharusnya:

remrecurs($curitem['id']);

Mengapa?

Tujuan Anda adalah menghapus baris dengan id yang diberikan. Pertama Anda memeriksa untuk melihat apakah ia memiliki anak. Jika ya, Anda perlu memanggil penghapusan rekursif pada setiap anak-anak tidak pada orang tua lagi. Anda memanggil fungsi secara rekursif pada induknya lagi.. ini mengarah ke panggilan rekursif tak terbatas, Anda menghancurkan tumpukan dan crash.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java Spring REST API Menangani Banyak Parameter Opsional

  2. fungsi php tidak mengembalikan semua hasil dari kueri MySQL di foreach

  3. Bagaimana cara saya menggunakan penghapusan kaskade di mysql?

  4. Rel pilih catatan acak

  5. Bermigrasi dari replikasi tradisional ke GTID