Requête d'insertion automatique php/mysql
Hors ligneKefren Le 03/04/2008 à 15:30 Profil de Kefren Configuration de Kefren

Voila il y a quelques temps j'avais réalisé une requête d'insertion automatique à partir d'un fichier spécialement formaté :


$insert = "LOAD DATA LOCAL INFILE '". $fichier ."' ".
              "INTO TABLE " echo $table .
              "FIELDS TERMINATED BY ';' ".
              "LINES TERMINATED BY '\\n'";


Sachant que le nom des fichiers contient le nom de la table mais il faut que j'enlève les 3 premiers caractères ainsi que les 4 derniers (extension), et comme ces fichiers sont tous dans un dossier particulier, au lieu de charger ma page, j'aimerai transformer cette fonction :

function insertion($fichier)
{

/* Création de la requête SQL */
$insert = "LOAD DATA LOCAL INFILE '". $fichier ."' ".
          "INTO TABLE " echo $table .
          "FIELDS TERMINATED BY ';' ".
          "LINES TERMINATED BY '\\n'";
            
/* Connexion Ã  MySQL : en cas d'erreur, le script sera arrêté en affichant le message d'erreur */
$connexion = mysql_connect($serveur_mysql, $utilisateur_mysql, $mot_de_passe_mysql)
    or die ("Erreur lors de la connexion.<br />\nMySQL a retourné : ". mysql_error());
     
     
/* Sélection du schéma dans lequel sera exécuté la requête. En cas d'erreur, le script sera arrêté en affichant le message d'erreur */
mysql_select_db($nom_de_la_base, $connexion)
    or die ("Erreur lors de la connexion.<br />\nMySQL a retourné : ". mysql_error());

/* Exécution de la requête SQL. En cas d'erreur, le script sera arrêté en affichant le message d'erreur */
mysql_query($insert, $connexion)
    or die("Erreur lors de l'exécution de la requête.<br />\nRequête : ". $insert ."<br />\nMessage d'erreur : ". mysql_error());

/* Si on arrive ici, c'est que tout s'est bien déroulé : on affiche le message de réussite */
echo "<p>Insertion des produits Ã  partir des données du fichier ". $fichier ." réussie</p>\n";

/* Et on referme la connexion au serveur MySQL */
mysql_close($connexion);
}


Je pensait créer une autre fonction qui appelle cette dernière dans laquelle je récupère les fichiers, je leur enlève les caractères qui sont en trop, et j'appelle ma fonction en passant à paramètre mon nom de fichier et le nom de la table, mais quelle fonction de php peut me permettre d'enlever les carractères, et comment parcourir le dossier où sont placés mes fichiers, c'est à dire les prendre quelque soit le nombre de fichiers placés dans ce dossier sachant qu'il n'y aura pas deux fois le même fichier.
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneAnthony Le 03/04/2008 à 16:09 Profil de Anthony Configuration de Anthony

Admin
Salut

Les fonctions pour modifier les caractères sont nombreuses, y'a entre autres preg_replace(), str_replace(), etc.

Je te conseille de voir la doc de str_replace() sur php.net : http://fr.php.net/manual/fr/function.str-replace.php

Sinon pour lister les fichiers d'un dossier correspondant à une extension particulière (ou pas) tu peux utiliser la fonction glob() : http://fr.php.net/manual/fr/function.glob.php
--

Hors ligneKefren Le 04/04/2008 à 09:09 Profil de Kefren Configuration de Kefren

Problème résolu inutile de repondre

Merci pour les infos des fonctions str_replace().

Voila lorsque j'exécute mes fonction mysql me renvoi cette erreur : Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

D'après certains forum, ça serait un fichier manquant enfin j'ai trouver des réponses tellement claire que je préfère te demander si ta déjà rencontré ce problème et comment le régler aussi ;)
--
Si les poules traversent juste devant les voitures ... c'est pour aller de l'autre coté de la route !!!
Hors ligneAnthony Le 04/04/2008 à 12:44 Profil de Anthony Configuration de Anthony

Admin
Can't connect ça veut dire qu'il n'arrive pas à se connecter ==> regarde si tes paramètres de connexion sont les bons.
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels