Lors d'une tentative de vidage d'une base de données MySQL, un problème survient lorsque le fichier est créé mais reste vide. Cet article examine les raisons potentielles de ce comportement et propose des solutions basées sur l'extrait de code donné.
Le problème initial provenait d'un échec de connexion à la base de données avant d'émettre des requêtes. De plus, la méthode connection.destroy() était appelée prématurément, ce qui entraînait l'interruption des appels SQL en attente.
Pour corriger ces problèmes, les modifications suivantes ont été apportées :
<code class="javascript">var mysql_backup = function(){ //... this.connection.connect(function (err, empty) { //... }); //... this.get_tables = function(callback){ var counter = 0; var me = this; this.query('SHOW TABLES', function(tables) { for (table in tables){ counter++; me.query( 'SHOW CREATE TABLE ' + tables[table].Tables_in_mvc, function(r){ //... counter--; if (counter === 0){ me.save_backup(); me.connection.destroy(); } } ) } }); }; //... }; var db = new mysql_backup; db.init(); db.get_tables();</code>
Pour améliorer la lisibilité et l'efficacité du code, d'autres améliorations pourraient inclure :
En corrigeant le problème de connexion, en organisant l'ordre d'exécution du rappel de manière appropriée et en suivant les appels SQL en attente, le problème de vidage des fichiers peut être résolu, permettant ainsi un « dumping » réussi de la base de données MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!