Dieses Skript hat ernsthafte, bahnbrechende Probleme. Es funktioniert nur mit der trivialsten Datenbank.
- NULLs werden nicht unterstützt.
- Zeichensätze werden nicht berücksichtigt.
- Tabellennamen sind nicht getrennt.
- Nur Tabellen werden unterstützt – keine Ansichten, gespeicherten Prozeduren, Trigger, Funktionen usw.
addslashes()
ist nicht zeichensatzsicher .mysql_query()
ruft alle vorab ab die Zeilen aus der Tabelle, wenn Sie also eine Tabelle mit Millionen von Zeilen abfragen, werden Sie Ihr PHP-Speicherlimit überschreiten. Verwenden Siemysql_unbuffered_query()
stattdessen. Bei näherem Nachdenken sehe ich, dass Sie die gesamte Ausgabe in $return sammeln, also ist dies strittig.- Ihre Fehlerunterdrückung mit dem
@
Betreiber ist schlechte Praxis. Suchen Sie nach Fehlern und schlagen Sie ordnungsgemäß mit einer informativen Meldung fehl.
Ihre Forderung, mysqldump nicht zu verwenden, ist absurd.
Warum sich so viel Arbeit machen, das Rad neu erfinden, und es trotzdem so falsch machen? Führen Sie einfach mysqldump über shellexec()
aus
.
Siehe auch: