Requete SQL et quotes

Flatbeat Messages postés 35 Statut Membre -  
 Utilisateur anonyme -
Bonjour,ma question est vraiment idiote :)

Je voudrais faire une requête SQL sans faire de addslashes, comment faut-il écrire la requête ?

exemple :

$chaine = "texte d'emple avec d'es quotes";

$sql2="UPDATE liste_texte
SET texte ='$chaine'
WHERE id_texte ='25'";

Merci d'avance !

8 réponses

Dalida Messages postés 7114 Statut Contributeur 923
 
salut,

Je voudrais faire une requête SQL sans faire de addslashes, comment faut-il écrire la requête ?
heu…
ben en ajoutant les slashes à la main !
$chaine = "texte d'emple avec d\'es quotes"; 

effectivement, drôle de question…
-:oD
0
Flatbeat Messages postés 35 Statut Membre 1
 
Oui mais ma chaine n'est pas tout le temps la même. Le addslashes va rajouter des slashes en table ? En faite il ne doit pas y avoir dans la table, il doit bien y avoir une écriture lors de la requete update spécifique non ?
0
Dalida Messages postés 7114 Statut Contributeur 923
 
il faut utiliser une fonction pour protéger la BDD, donc addslashes() ou mieux mysqli_real_escape_string().
si tu utilises un PHP > 5.2 tu peux utiliser PDO avec PDO::prepare().

si tu as des slashes en trop à l'affichage, suffit de nettoyer la chaîne avec stripslashes() avant d'afficher.
0
Utilisateur anonyme
 
tu dois l'écrire comme sa :

$chaine = "texte d'emple avec d'es quotes";

$sql2="UPDATE liste_texte
SET texte ='".$chaine."'
WHERE id_texte ='25' ";
0
Dalida Messages postés 7114 Statut Contributeur 923
 
ce qui nous donne la requête :
UPDATE liste_texte SET texte ='texte d'emple avec d'es quotes' WHERE id_texte ='25'

et donnera une belle erreur puisque l'apostrophe de la phrase va fermer l'apostrophe de la requête, d'où l'intérêt d'échapper les apostrophes avec une fonction comme addslashes()…
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
nagatif si tu regarde bien la structure ceci donne :

UPDATE liste_texte SET texte ="texte d'emple avec d'es quotes" WHERE id_texte ='25'

et non

UPDATE liste_texte SET texte ='texte d'emple avec d'es quotes' WHERE id_texte ='25'

voila pourquoi PHP exige la double notation '"

0
Dalida Messages postés 7114 Statut Contributeur 923
 
gondoles, Venise, printemps, tamise…
le copier/coller de ton code, plus un echo() :
<?php
$chaine = "texte d'emple avec d'es quotes";
$sql2="UPDATE liste_texte
SET texte ='".$chaine."'
WHERE id_texte ='25' ";
echo $sql2;
?>

sortie :
UPDATE liste_texte
SET texte ='texte d'emple avec d'es quotes'
WHERE id_texte ='25' 
0
Utilisateur anonyme
 
Provoque t'il une erreur ?? parce que moi non, ma base, prend correctement les données...
0
Dalida Messages postés 7114 Statut Contributeur 923
 
#1064 - 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 'emple avec d'es quotes' '' at line 1
0
Utilisateur anonyme
 
Ca c'est une erreur mysql, je te demande si en PHP ca ne passe pas...
car mois ca fonctionne sans soucis...
0
Dalida Messages postés 7114 Statut Contributeur 923
 
Ca c'est une erreur mysql, je te demande si en PHP ca ne passe pas...
et t'as pas l'impression que le sujet de la discussion c'est SQL et pas PHP ?
Je voudrais faire une requête SQL sans faire de addslashes, comment faut-il écrire la requête ?

autrement dit, on s'en tape de la gestion des quotes en PHP…
0
Utilisateur anonyme
 
oui mais excuse moi quand je vois des dollards devant des variables, je dirai pas que c'est du Mysql au sens propre

$chaine <== tu m'excusera mais c'est du PHP.
meme si on appel du SQL par derrière ensuite

0