Skrip itu memiliki masalah serius yang melanggar kesepakatan. Ini tidak akan berfungsi untuk basis data apa pun kecuali yang paling sepele.
- NULL tidak didukung.
- Set karakter tidak diperhitungkan.
- Nama tabel tidak dibatasi.
- Hanya tabel yang didukung -- bukan tampilan, prosedur tersimpan, pemicu, fungsi, dll.
addslashes()
tidak aman untuk set karakter .mysql_query()
mengambil semua baris dari tabel, jadi jika Anda meminta tabel dengan jutaan baris, Anda akan melebihi batas memori PHP Anda. Gunakanmysql_unbuffered_query()
sebagai gantinya. Setelah dipikir-pikir, saya melihat Anda mengumpulkan semua output di $return jadi ini bisa diperdebatkan.- Pencegahan kesalahan Anda dengan
@
operator adalah praktik yang buruk. Periksa kesalahan dan gagal dengan baik dengan pesan informatif.
Persyaratan Anda untuk tidak menggunakan mysqldump tidak masuk akal.
Mengapa membuat begitu banyak pekerjaan untuk diri Anda sendiri menciptakan kembali roda, dan masih melakukan kesalahan? Jalankan saja mysqldump melalui shellexec()
.
Lihat juga: