Formatage texte mysql

Résolu/Fermé
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 2 juin 2010 à 18:45
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 3 juin 2010 à 10:23
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
A voir également:

4 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
2 juin 2010 à 18:50
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
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 11
2 juin 2010 à 18:57
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
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
2 juin 2010 à 19:16
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
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 11
3 juin 2010 à 10:23
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