Sauvegarde de ma base de données: problemes de retour à la ligne

Résolu
Ivynox Messages postés 10 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 9 décembre 2009 - 23 mai 2006 à 17:00
Ivynox Messages postés 10 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 9 décembre 2009 - 23 mai 2006 à 17:10
Je vais vous exposer brièvement mais précisément mon probleme: j'ai réalisé un script de sauvegarde totale de ma base de données dans un fichier, mais certaines des données de mon site sont entrées dans une textarea. Dans ce cas, j'utilise les fonctions htmlentities(addslashes($_POST["var"])); par exemple, mais lorsque j'utilise mon algo voici ce que j'obtiens donc dans mon fichier:

+ INSERT INTO membres VALUES ( '1', 'Nom', 'Prenom', 'adresse@hotmail.com', 'rue du vieux château
75000 Paris', 'admin');

Donc nous obtenons un retour à la ligne alors qu'il faut les eviter pour que la lecture de la commande SQL se fasse correctement. Le probleme est donc de supprimer ce retour à la ligne lors de la création du fichier.

Voici la partie de l'algo nous interessant:

    for($j=0; $j<mysql_num_fields($result);$j++)
    {
    if(!isset($row[$j]))
    $schema_insert .= " NULL,";
    elseif($row[$j] != "")
    $schema_insert .= " '".addslashes($row[$j])."',";
    else
    $schema_insert .= " '',";
    }

Merci d'avance, je commence a désesperer ^^

2 réponses

Ivynox Messages postés 10 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 9 décembre 2009
23 mai 2006 à 17:10
Au risque de paraitre con, j'ai trouvé ^^

    for($j=0; $j<mysql_num_fields($result);$j++)
    {
    if(!isset($row[$j]))
    $schema_insert .= " NULL,";
    elseif($row[$j] != "")
        {
        $var = addslashes($row[$j]);
        $var_good = str_replace("\n","",$var);
        $schema_insert .= " '".$var_good."',";
        }
    else
    $schema_insert .= " '',";
3
Ivynox Messages postés 10 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 9 décembre 2009
23 mai 2006 à 17:01
(a savoir que le retour à la ligne était présent dans le text area, c'était de la forme:

Rue du vieux château
75000 Paris

Donc les retours à la ligne dans la base sont voulus)
0
Rejoignez-nous