Les tentatives de création d'un script cron pour vider une base de données MySQL aboutissent à un fichier vide malgré sauvegarde réussie du fichier. L'impression du journal génère également une chaîne vide.
Le problème provient de plusieurs problèmes dans le code fourni :
Le code suivant corrige ces problèmes et fournit une solution fonctionnelle :
var mysql_backup = function() { this.backup = ''; this.mysql = require('mysql'); this.init = function() { this.connection = this.mysql.createConnection({ user: 'root', password: 'root', database: 'test' }); // Connect to the database this.connection.connect(function(err) { if (err) console.log(err); db.get_tables(function() {}); }); }; this.query = function(sql, callback) { this.connection.query(sql, function (error, results, fields) { if (error) { throw error; } if (results.length > 0) { callback(results); } }); }; 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_test, function(r){ for (t in r) { me.backup += "DROP TABLE " + r[t].Table + "\n\n"; me.backup += r[t]["Create Table"] + "\n\n"; } counter--; if (counter === 0) { me.save_backup(); me.connection.destroy(); } }); } }); }; this.save_backup = function() { var fs = require('fs'); fs.writeFile("./backup_test.txt", this.backup, function(err) { if(err) { console.log(err); } else { console.log("The file was saved!"); } }); } }; var db = new mysql_backup; db.init();
Pensez à utiliser :
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!