Problème Update mysql (marche en local)

Résolu
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   -  
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'utilise une fonction UPDATE pour mettre a jour la base de donnée, mon code marche en local mais lorsque je le met sur mon serveur (free) ca ne marche pas.

PS: mes identifiants de base mysql de free et en local sont les mêmes.

Si vous avez une idée je suis preneur, Merci d'avance !!
$nom=htmlspecialchars(stripslashes($_POST['nom']));
$date=htmlspecialchars($_POST['date']);
$description=htmlspecialchars(stripslashes($_POST['description']));
$number=$_POST['number'];
$date_jour="$date[0]$date[1]";
$date_mois="$date[3]$date[4]";
$date_annees="$date[6]$date[7]$date[8]$date[9]";
mysql_connect("localhost","ledyapason","frederic");
mysql_select_db("ledyapason");
mysql_query("UPDATE soiree SET nom='$nom', description='$description', jour='$date_jour', mois='$date_mois', annees='$date_annees' WHERE ID='$number'");
mysql_close();
A voir également:

4 réponses

ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
Bon j'ai avancé le problème ne vien pas du fait que ca soit en local ou pas, il vien du texte que j'essayait de mettre il semblerai que lorsque je met un apostrophe ca bloque la fonction de UPDATE la question est pourquoi? merci ;)
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Bonsoir,

dans ta requette d'UPDATE:

mysql_query("UPDATE soiree SET nom='$nom', description='$description', jour='$date_jour', mois='$date_mois', annees='$date_annees' WHERE ID='$number'");

tu remarques qu'il y a des '

alors si dans les valeurs à enregistrer il y a des apostrophes cà perturbe.

par exemple si tu veux mettre d'hier dans le champ description tu vois que ça donne
description='d'hier'
il y a donc interprétation de l'apostrophe.

Pour éviter cet inconvénient il faut échapper les apostrophes, c'est à dire ajouetr auomatiquement un \ devant les '

la fonction php qui fait ça c'est addslashes

nom='addslashes($nom)', description='addslashes($description)',  etc...


l'opération inverse c'est stripslashes(....)
0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
MDR je viens de regler mon problème et je vien de lire ton message ;) merci quand même c'était bien ca j'ai inversé addslashes et stripslashes, par contre en local je doit mêtre un addslashes et sur le serveur je ne doit rien mettre ni add ni strip, si je met strip ca me met l'erreur si je met add ça me rajoute un slashe sur mon texte donc finalement je n'ai rien mis. mais est ce que quelqu'un peut expliquer cette difference entre local et sur le serveur ?

Merci beaucoup pour avoir repondu si vite.

A bientot ;)
0
Utilisateur anonyme
 
Bonsoir,

il y aune différence de traiement des ' dans php et dans mysql; la requête aurait pu être codée ainsi :

$query = 'UPDATE soiree SET nom=';
$query .= '"'.$nom.'"'; // cette ligne ajoute à query une double " et le contenu de $nom puis une double "
ainsi si $nom contient une quoute il n'a pas de pb

etc
$query .= '"'.$description.'"';
$query .= '"'.$date_jour.'"';
$query .= '"'.$date_mois.'"';
$query .= '"'.$date_annees.'"';
$query .= ' where id='.$number.')';

mysql_query($query);


0
ordipard Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   35
 
Merci beaucoup pour l'explication et pour avoir répondu si rapidement ;)

A bientot et encore merci!
0