Requete SQL et quotes
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 !
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 !
Configuration: Windows XP Firefox 3.0.11
8 réponses
-
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
-
Ca c'est une erreur mysql, je te demande si en PHP ca ne passe pas...
car mois ca fonctionne sans soucis...
-
ContributeurCa 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…
-
-
Provoque t'il une erreur ?? parce que moi non, ma base, prend correctement les données...
-
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 '"
-
Contributeurgondoles, 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'
-
-
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' ";
-
Contributeurce 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()…
-
-
Contributeuril 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.
-
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 ?
-
Contributeursalut,
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