Je travaille à faire un téléchargement de fichier dans l'ordre de restaurer une table de sauvegarde (format .sql) ... Le code ci-dessous pour télécharger le fichier sql:Importer un fichier sql via PHP télécharger
<form enctype="multipart/form-data" method="post">
<font style="font-size:18px;">File to import:</font><br />
<input size='30' type='file' name='filename'>
<input type="submit" name="submit" value="Upload File">
</form>
Après avoir fait soumettre, les codes suivants sont:
set_time_limit (0);
//Upload File
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
if (move_uploaded_file($_FILES['filename']['tmp_name'], $_FILES['filename']['name'])) {
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
$table_name = "items";
$backup_file = $_FILES['filename']['name'];
if(!file_exists($backup_file)){
echo "File Not Exists";
}
$sql = "LOAD DATA INFILE '$backup_file' INTO TABLE $table_name";
mysql_select_db('MM_db');
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not load data : ' . mysql_error());
}
echo "Loaded data successfully\n";
mysql_close($conn);
fclose($handle);
}
?>
<script>
alert('Items Uploaded Successfully');
</script>
<?php
exit();
}
}
Lorsque vous effectuez le téléchargement, je reçois cette erreur:
Could not load data : File 'c:\wamp\bin\mysql\mysql5.5.24\data\MM_db\items.sql' not found (Errcode: 2)
Son comme il n'a pas trouvé mon fichier items.sql, bien que j'ai vérifié si c'est là ou non en faisant file_exists($backup_file)
, mais je suis toujours confronté à ce problème. Je pense qu'il pourrait y avoir quelque chose qui manque avec le code de téléchargement de fichier? S'il vous plaît aidez-moi les gars! LOAD DATA INFILE ne peut pas exécuter les instructions SQL trouvées dans un script SQL.
Veuillez ne pas faire ceci. Vous avez le contrôle d'accès ** zéro ** ici. Si quelque chose vous devriez utiliser [phpMyAdmin] (http://www.phpmyadmin.net/home_page/index.php) au lieu de rouler le vôtre. Rappelez-vous que "LOAD DATA INFILE" doit avoir le fichier sur le serveur MySQL, pas sur le serveur web. – tadman
@tadman Désolé, mais vous avez tort, Si je remplace la valeur '$ backup_file' dans un chemin de fichier spécifique - Exemple' C:/items.sql' Et supprimer le téléchargement du fichier entier ... Cela fonctionnera comme un charme, mais J'aime prendre les choses de manière plus stimulante! –
Ce chemin doit être sur la même machine que le processus du serveur MySQL. Peut-être que c'est la même machine dans ce cas. – tadman