php exec() - mysqldump crée un fichier vide

Je veux créer une sauvegarde à partir d'une base de données, mais je reçois un fichier vide.

include('config.php');

$command = "mysqldump --opt -h ".$_host." -u ".$_user." -p ".$_pass." ".$_db." > test.sql";
exec($command);

echo "<br />".$command;

test.sql est créée où la .fichier php est situé.

Edit:

Remarque! J'utilise XAMPP WINDOWS !

Solution:

Parce que je suis sur un Windows Serveur Web (XAMPP), j'avais besoin de spécifier le chemin d'accès:

$command = 'd:\xampp\mysql\bin\mysqldump --opt -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
  1. J'ai enlevé l'espace entre-p et le mot de passe. Il ressemble: -pMYPASSWORD
  2. Remplacé " avec '

Je pense que si vous utilisez Linux, serveur web, vous n'avez pas à spécifier le chemin d'accès pour la commande mysqldump.

Cheers! 🙂

Je pense que vous devriez supprimer l'espace entre-p et le mot de passe.
Toujours obtenir un fichier vide.
Avez-vous essayé de l'écho-ing de la commande (pour s'assurer que toutes les variables sont passées comme prévu) ou de test manuellement avec le droit d'entrée?

OriginalL'auteur Reteras Remus | 2012-08-17