Mysql
 sql >> Base de données >  >> RDS >> Mysql

Script de vidage de base de données PHP - y a-t-il des problèmes ?

Ce script a de sérieux problèmes de rupture. Cela ne fonctionnera que pour la base de données la plus triviale.

  • Les valeurs NULL ne sont pas prises en charge.
  • Les jeux de caractères ne sont pas pris en compte.
  • Les noms de table ne sont pas délimités.
  • Seules les tables sont prises en charge, pas les vues, les procédures stockées, les déclencheurs, les fonctions, etc.
  • addslashes() n'est pas sûr pour le jeu de caractères .
  • mysql_query() pré-extrait tous les lignes de la table, donc si vous interrogez une table avec des millions de lignes, vous dépasserez votre limite de mémoire PHP. Utilisez mysql_unbuffered_query() Au lieu. À la réflexion, je vois que vous collectez toutes les sorties dans $return, donc c'est sans objet.
  • Votre suppression des erreurs avec le @ opérateur est une mauvaise pratique. Recherchez les erreurs et échouez en douceur avec un message informatif.

Votre exigence de ne pas utiliser mysqldump est absurde.

Pourquoi faire tant de travail pour vous-même en réinventant la roue, et toujours vous tromper ? Exécutez simplement mysqldump via shellexec() .

Voir aussi :