Commande UNIX DUMP SQL PHP

Fermé
DAG - 3 oct. 2008 à 12:11
 DAG - 3 oct. 2008 à 14:21
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 :
<?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:

3 réponses

Petit up !
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
3 oct. 2008 à 13:58
hello
est-ce que mysql est dans le PATH ?
whereis mysql
0
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>";
}
?>
0