Erreur en voulant faire un Update

Mammouth du PHP | 620 Messages

07 janv. 2009, 13:35

bonjour,
j'essai de faire un update des données de ma base mais lorsque je valide mes mises a jour j'ai ce message d'erreur qui apparait.

Code : Tout sélectionner

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 'WHERE id = "$id"' at line 7
j'ai refait ma page de validation mais j'ai toujours le meme message.

Pourriez vous m'aider ?
ma page de validation est
  //connection au serveur
	include("../connexion-sql.php");

 
  //récupération des valeurs des champs: 

  $nom = $_POST["nom"] ; 
  $url = $_POST["url"] ; 
  $news = $_POST["news"] ; 
  $date = $_POST["date"] ; 
 
   
  //récupération de l'identifiant de la news: 
  $id = $_POST["id"] ; 

  
  //exécution de la requête SQL:
  $requete = mysql_query('UPDATE infonews SET   
            id = "$id",  
            nom = "$nom",   
            url = "$url",  
            news = "$news",  
            date = "$date",  
            WHERE id = "$id" ') or die( mysql_error() ) ;

  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification concernant la news a bien été effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
merci

Eléphant du PHP | 164 Messages

07 janv. 2009, 13:46

ce que je te conseille c'est déjà d'aller dans phpmyadmin et dans un onglet "SQL" tu tapes ta requete en remplaçant $id par une valeur. Il te dira si tu as une erreur.

Bye

Mammouth du PHP | 1353 Messages

07 janv. 2009, 13:46

Bonjour,

Il faut enlever la , apres date="$date" sinon il s'attend à un autre champ...

Tu devrais aussi vérifier l'existence de tes variables, surtout id avant de faire l'update...

Enfin ca ne sert à rien de faire id="$id" car tu update avec un WHERE id="$id" donc la valeur de id restera inchangée, tu peux ne pas updater ce champ :)
$requete = mysql_query('UPDATE infonews SET
            nom = "$nom",    
            url = "$url",   
            news = "$news",   
            date = "$date"   
            WHERE id = '.$id) or die( mysql_error() ) ; 
Attention aussi aux injections SQL si ce contenu est ajoutable par des membres, pense a regarder du coté de la fonction mysql_escape_string() par exemple.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 620 Messages

07 janv. 2009, 13:49

Argh !!!! la virgule.
Merci, a force de chercher on n'y voit plus rien.
Modifié en dernier par fabrice88250 le 07 janv. 2009, 13:54, modifié 1 fois.