Formatage texte mysql

Résolu
t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais écrire un texte dans ma base mysql. Le champ dans la base est défini au format TEXT. Le texte est :

E' NATO IL REDENTOR

Mais j'ai un message d'erreur :

Erreur SQL !INSERT INTO ........... You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NATO IL REDENTOR',..............

Je pense que cela provient de ' après E. Existe t'il un moyen de formater le texte de façon à ce qu'il soit accepter par MYSQL ?

Merci

4 réponses

  1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Il faut l'échapper.
    Si tu utilises la fonction de commençant par "mysql_", utilise la fonction mysql_real_escape_string.
    Avec PDO, tu as la méthode quote().
    0
  2. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merci.
    J'ai remplacé

    $sql = "INSERT INTO ....................................";
    mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());

    par

    $sql = "INSERT INTO ....................................";
    mysql_real_escape_string($sql) or die('Erreur SQL !'.$sql.mysql_error());

    J'ai plus de message d'erreur, mais pas d'enregistrement dans la table !
    0
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Il faut échapper tes variables, pas ta requête SQL.
    <?php
    mysql_connect();
    mysql_select_db();
    
    $sql = 'INSERT INTO table(champ1) VALUES("'.mysql_real_escape_string($champ1).'")';
    mysql_query($sql) or die('...');
    // ...
    ?>
    0
  4. t671 Messages postés 1478 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merciiiiii ! Ca fonctionne !

    Voici ce que j'ai écrit :

    $titre_bis = mysql_real_escape_string(htmlspecialchars($_POST['titre']));
    
           	   	    $sql = "INSERT INTO videos(titre, auteur) VALUES('$titre_bis', '$auteur')";       	   	    
           	   	    mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
    


    A ++ ;o))
    0