[SQL] apostrophes problème avec les fonctions
Résolu
Meta-Dark
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
toto -
toto -
Bonjour,
J'ai un petit problème. J'essaie de faire rentrer des chaînes contenant des apostrophes dans ma base de données. Bon, ça me renvoie une erreur et je me rends vite compte que les apostrophes posaient problème. J'ai essayé addslashes(), et mysql_real_escape_string(), mais l'erreur est toujours la.
Si j'utilise mysql_real_escape_string($equipement), voila l'erreur retournée :
Et si j'utilise addslashes($equipement) même chose...j'ai du mal à comprendre.
Voici le fragment de code concerné :
Un coup de main de la part d'un forumeur serait vraiment le bienvenu. Merci d'avance à tous !
J'ai un petit problème. J'essaie de faire rentrer des chaînes contenant des apostrophes dans ma base de données. Bon, ça me renvoie une erreur et je me rends vite compte que les apostrophes posaient problème. J'ai essayé addslashes(), et mysql_real_escape_string(), mais l'erreur est toujours la.
Si j'utilise mysql_real_escape_string($equipement), voila l'erreur retournée :
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 'Aventurier'' at line 1
Et si j'utilise addslashes($equipement) même chose...j'ai du mal à comprendre.
Voici le fragment de code concerné :
if(isset($_POST['acheter'])) { $or = $_SESSION['or']; $nom = $_SESSION['nom']; $prix = $_POST['prix']; $type = $_POST['type']; $query = mysql_query("SELECT `$type` FROM Rpaygay WHERE `nom`='$nom'") or die(mysql_error()); while($query2 = mysql_fetch_array($query)) { $objetBDD = $query2["$type"]; $objetBDD = mysql_real_escape_string($objetBDD); } if(!empty($objetBDD)) { mysql_select_db("equipements"); $prixBD = mysql_query("SELECT prix FROM equipements WHERE `nom`='$objetBDD'") or die(mysql_error()); while($prixBDD = mysql_fetch_array($prixBD)) { $prix2 = ceil($prixBDD['prix'] / 3); } $prix -= $prix2; $objetBDD = stripslashes($objetBDD); $remplacer = "Votre ancien objet équipé $objetBDD à été revendu au marchand et vous a permis d'économiser $prix2 pièces d'or !"; } mysql_select_db("Rpaygay"); if($or >= $prix) { $or = $or - $prix ; mysql_query("UPDATE Rpaygay SET `or` = '$or' WHERE nom = '$nom' ") or die(mysql_error()); $valider = true; } else { mysql_query("UPDATE Rpaygay SET `or` = '$or' WHERE nom = '$nom' ") or die(mysql_error()); $valider = false; } if($valider) { $equipement = mysql_real_escape_string($_POST['acheter']); echo $equipement; mysql_query("UPDATE Rpaygay SET `$type`='$equipement' WHERE `nom`='$nom'") or die(mysql_error()); $equipement = stripslashes($equipement); ?> <div class="info">Tu as bien acheté l'équipement <?php echo $equipement ; ?> au prix de <?php $prix3 = $prix + $prix2 ; echo $prix3 ; ?> pièces d'or.<br /><br /> <?php echo $remplacer ; ?></div><br /><br />
Un coup de main de la part d'un forumeur serait vraiment le bienvenu. Merci d'avance à tous !
A voir également:
- [SQL] apostrophes problème avec les fonctions
- Logiciel sql - Télécharger - Bases de données
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Jointure sql ✓ - Forum MySQL
- Fonction si avec ou - Guide
- Requete sql pix - Forum PHP
1 réponse
Bonjour
Avec mysql, il faut toujours utiliser mysql_real_escape_string et JAMAIS addslashes, quoi qu'en disent beaucoup de personnes
si c'est bien sur cette ligne qu'il y a le problème :
remplace par
Avec mysql, il faut toujours utiliser mysql_real_escape_string et JAMAIS addslashes, quoi qu'en disent beaucoup de personnes
si c'est bien sur cette ligne qu'il y a le problème :
mysql_query("UPDATE Rpaygay SET `$type`='$equipement' WHERE `nom`='$nom'") or die(mysql_error());
remplace par
$requete="UPDATE Rpaygay SET `$type`='$equipement' WHERE `nom`='$nom'"; echo $requete; mysql_query($requete) or die(mysql_error());