2010-10-11 4 views
2

J'ai le code ci-dessous, mais rien ne se passe après l'exécutionPHP mysqldump ne fonctionne pas

system('mysqldump -u USER -pPASS DB > /tmp/bckp.sql');

Quel est le problème avec ce code?

Sultan

+0

si vous exécutez cette commande à partir de la ligne de commande, cela fonctionne-t-il? –

+0

Oui, cela fonctionne de cette façon – sultan

Répondre

1

il pourrait y avoir thausands des choses qui ne va pas:

  • ne vous recevez des messages d'erreur? Avez-vous essayé de echo system(... - et quel est le résultat?
  • qu'est ce que le ?
  • avez-vous essayé d'utiliser exec ou passthru à la place?
  • Etes-vous sûr que votre nom de base de données, votre nom d'utilisateur et votre mot de passe sont épelés correctement? Que se passe-t-il si vous lancez cette commande sur le terminal par vos propres moyens?

quelques informations supplémentaires seraient vraiment utiles pour vous aider.

+0

Si exécuter cette commande directement à partir de ma console cela fonctionne bien, mais via le script php, il ne fonctionne pas – sultan

+0

Il semble qu'il y avait des restrictions sur l'exécution d'une commande système, donc pour l'instant cela fonctionne – sultan

2

Vous avez probablement besoin de spécifier le chemin d'accès complet à mysqldump car il n'est probablement pas dans votre variable d'environnement PATH pour l'utilisateur que PHP exécute. Aller à la ligne de commande sur le serveur et exécuter

which mysqldump 

Il va cracher sur le chemin complet. Puis remplacez mysqldump dans votre commande system() avec ce chemin d'accès complet

+0

qui est un commande non reconnue sur les systèmes Windows. Il y en a un autre pour connaître le chemin absolu? – B4NZ41