Dat script heeft serieuze, dealbrekende problemen. Het werkt alleen voor de meest triviale database.
- NULL's worden niet ondersteund.
- Er wordt geen rekening gehouden met tekensets.
- Tabelnamen zijn niet gescheiden.
- Alleen tabellen worden ondersteund -- geen views, opgeslagen procedures, triggers, functies, enz.
addslashes()
is niet tekenset veilig .mysql_query()
haalt alle vooraf op de rijen uit de tabel, dus als u een tabel met miljoenen rijen opvraagt, overschrijdt u uw PHP-geheugenlimiet. Gebruikmysql_unbuffered_query()
in plaats van. Bij nader inzien zie ik dat je alle output verzamelt in $return, dus dit is betwistbaar.- Uw onderdrukking van fouten met de
@
operator is een slechte gewoonte. Controleer op fouten en faal netjes met een informatief bericht.
Uw eis om mysqldump niet te gebruiken is absurd.
Waarom zoveel werk voor jezelf maken door het wiel opnieuw uit te vinden, en het toch zo fout doen? Voer gewoon mysqldump uit via shellexec()
.
Zie ook: