Commande UNIX DUMP SQL PHP
DAG
-
DAG -
DAG -
Bonjour,
J'ai créer un formulaire qui me permet d'uploader de gros fichiers SQL sur mon serveur WEB.
Une fois que le fichier est arrivé sur mon serveur, j'aimerais pouvoir créer la base à l'image du fichier SQL uploader.
Pour cela je pensais utiliser la fonction shell_exec de PHP afin exécuter la commande mysql -h ... -u ... -p ... < ... pour pouvoir créer la base de donnée.
C'est ce que j'ai essayé de faire avec le code ci-dessou, mais voila, ça ne marche pas !
Je précise que je suis sous Linux et que si je remplace $cmd = "mysql -h localhost -u user -ppass bdd < " . $stock . $file_name; par $cmd = "ls -la" ou $cmd = "cat /le/chemin/d'un/fichier/sur/le/serveur/web", bref une commande Unix ça marche je peux voir le résultat de la commande !
Est-ce que quelqu'un aurai une idée ?
Voici le code :
J'ai créer un formulaire qui me permet d'uploader de gros fichiers SQL sur mon serveur WEB.
Une fois que le fichier est arrivé sur mon serveur, j'aimerais pouvoir créer la base à l'image du fichier SQL uploader.
Pour cela je pensais utiliser la fonction shell_exec de PHP afin exécuter la commande mysql -h ... -u ... -p ... < ... pour pouvoir créer la base de donnée.
C'est ce que j'ai essayé de faire avec le code ci-dessou, mais voila, ça ne marche pas !
Je précise que je suis sous Linux et que si je remplace $cmd = "mysql -h localhost -u user -ppass bdd < " . $stock . $file_name; par $cmd = "ls -la" ou $cmd = "cat /le/chemin/d'un/fichier/sur/le/serveur/web", bref une commande Unix ça marche je peux voir le résultat de la commande !
Est-ce que quelqu'un aurai une idée ?
Voici le code :
<?php
ini_set ('max_execution_time', 0);
$stock = '/var/www/Appli/tmp/';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $stock.$_FILES['userfile']['name']))
{
$file_name = $_FILES['userfile']['name'];
echo "Le fichier \"" . $file_name . "\" a été téléchargé. Création de la base...<br><br>";
$cmd = "mysql -h localhost -u user -ppass bdd < " . $stock . $file_name;
echo $cmd;
echo "<br>";
echo "<br>";
$output = shell_exec($cmd);
echo "Contenu commande : " . $output;
echo "<br>";
echo "<br>";
echo "Résultat commande : <pre>$output</pre>";
echo "<br>";
echo "<br>";
}
?>
A voir également:
- Commande UNIX DUMP SQL PHP
- Invite de commande - Guide
- Commande terminal mac - Guide
- Easy php - Télécharger - Divers Web & Internet
- Commande dism - Guide
- Commande scannow - Guide
3 réponses
Merci pour ta réponse dubcek. En fait j'ai trouver la réponse entre temps : j'ai fait comme ça :
<?php
ini_set ('max_execution_time', 0);
$stock = '/var/www/Application test/tmp/';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $stock.$_FILES['userfile']['name']))
{
$file_name = $_FILES['userfile']['name'];
echo "Le fichier \"" . $file_name . "\" a été téléchargé avec succès. <br>";
$chemin = "/var/www/Application\\ test/tmp/";
$cmd = "mysql -h localhost -u root -ppass bdd < " . $chemin . $file_name;
echo $cmd;
echo "<br><br>";
$output = system($cmd, $result);
echo "Résultat commande : <pre>$output</pre><br>";
echo "Résultat commande : <pre>$result</pre>";
}
?>