Det manuset har allvarliga problem som bryter mot avtal. Det kommer inte att fungera för någon annan än den mest triviala databasen.
- NULLs stöds inte.
- Teckenuppsättningar tas inte med i beräkningen.
- Tabellnamn är inte avgränsade.
- Endast tabeller stöds -- inte vyer, lagrade procedurer, utlösare, funktioner etc.
addslashes() är inte teckenuppsättningssäker
.mysql_query()
förhämtar alla raderna från tabellen, så om du frågar en tabell med miljontals rader kommer du att överskrida din PHP-minnesgräns. Användmysql_unbuffered_query()
istället. Vid närmare eftertanke ser jag att du samlar all utdata i $return så detta är omöjligt.- Din undertryckande av fel med
@
operatör är dålig praxis. Kontrollera efter fel och misslyckas med ett informativt meddelande.
Ditt krav att inte använda mysqldump är absurt.
Varför göra så mycket arbete för dig själv att uppfinna hjulet på nytt, och ändå få det så fel? Kör bara mysqldump via shellexec()
.
Se även: