Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP скрипт за изхвърляне на база данни - има ли проблеми?

Този скрипт има сериозни проблеми с нарушаването на сделката. Няма да работи за която и да е, освен за най-тривиалната база данни.

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

Изискването ви да не използвате mysqldump е абсурдно.

Защо да правите толкова много работа за себе си, преоткривайки колелото, и все пак да го направите толкова погрешно? Просто стартирайте mysqldump чрез shellexec() .

Вижте също:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql ...in where клаузата е двусмислена

  2. MySQL:Групиране по и преброяване на множество полета

  3. Някой е хакнал моята база данни - как?

  4. Задействане на SQL заявка при натискане на бутон?

  5. Python MySQL избягва специални символи