Този скрипт има сериозни проблеми с нарушаването на сделката. Няма да работи за която и да е, освен за най-тривиалната база данни.
- NULL не се поддържат.
- Наборите от знаци не се вземат предвид.
- Имената на таблици не са разделени.
- Поддържат се само таблици – не изгледи, съхранени процедури, тригери, функции и т.н.
addslashes()код> не е безопасно за набор от символи
.mysql_query()
предварително извлича всички редовете от таблицата, така че ако направите заявка за таблица с милиони редове, ще надхвърлите лимита на вашата PHP памет. Използвайтеmysql_unbuffered_query()
вместо. Като се замисля, виждам, че събирате целия изход в $return, така че това е спорно.- Вашето потискане на грешки с
@
оператор е лоша практика. Проверете за грешки и се провалите грациозно с информативно съобщение.
Изискването ви да не използвате mysqldump е абсурдно.
Защо да правите толкова много работа за себе си, преоткривайки колелото, и все пак да го направите толкова погрешно? Просто стартирайте mysqldump чрез shellexec()
.
Вижте също: