Det manuskript har alvorlige, deal-breaking problemer. Det vil ikke fungere for andre end den mest trivielle database.
- NULL er ikke understøttet.
- Tegnsæt tages ikke i betragtning.
- Tabelnavne er ikke afgrænset.
- Kun tabeller understøttes -- ikke visninger, lagrede procedurer, triggere, funktioner osv.
addslashes() er ikke tegnsætsikker
.mysql_query()
forhåndshenter alle rækkerne fra tabellen, så hvis du forespørger i en tabel med millioner af rækker, vil du overskride din PHP-hukommelsesgrænse. Brugmysql_unbuffered_query()
i stedet. Ved nærmere eftertanke kan jeg se, at du samler alt output i $return, så det er uklart.- Din undertrykkelse af fejl med
@
operatør er dårlig praksis. Tjek for fejl og mislykkes med en informativ besked.
Dit krav om ikke at bruge mysqldump er absurd.
Hvorfor gøre så meget arbejde for dig selv at genopfinde hjulet, og stadig få det så galt? Bare kør mysqldump via shellexec()
.
Se også: