Erreur de syntaxe

Toute question relative au langage PHP.
Veillez à utiliser les forums HTML, Javascript et autres pour les questions relatives à ces langages.
Voir la section "serveurs web" pour les questions relatives à Apache et autres.

Erreur de syntaxe

Messagepar Vévé » Lun 19 Mai 2014 10:03

Bonjour,
Je suis confronté à un problème de syntaxe. En effet, je cherche à réaliser un formulaire en php qui permettra de modifier une table de données.
Pour ce faire, j'ai un fichier php qui permet de récupérer l'ensemble des contributions enregistrées et de les présenter avec un lien pour choisir celle qui doit être modifiée.
Ce choix provoque l'ouverture d'une page présentant un formulaire qui permet de modifier les données.
Jusque là tout va bien.
Le problème intervient au moment de l'envoi des modifications vers la table à l'aide d'une troisième page.
Ce code d'erreur apparait : 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 = '135''' at line 6
Pouvez-vous m'aider à comprendre et régler cette problématique?
Par avance je vous remercie de votre aide et je colle le code de cette troisième page (sans les éléments de connexion).

Code: Tout sélectionner
<?php
  //connection au serveur
  $cnx = mysql_connect( "", "", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "" ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $nom = $_POST["nom"] ;
  //prenom:
  $prenom = $_POST["prenom"] ;
  //remarque:
  $remarque = $_POST["remarque"] ;
  //reponse:
  $reponse = $_POST["reponse"] ;
  //récupération de l'identifiant de la remarque:
  $id = $_POST["id"] ;
 
  //création de la requête SQL:
  $remarque = mysql_real_escape_string($remarque);
  $reponse = mysql_real_escape_string($reponse);
  $sql = "UPDATE chs_25_2012
            SET nom         = '$nom',
             prenom     = '$prenom',
        remarque    = '$remarque',
        reponse           = '$reponse',
         WHERE id = '$id' " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marché:
  if($requete)
  {
    echo("La modification a été correctement effectuée") ;
  }
  else
  {
    echo("La modification a échoué") ;
  }
?>
Vévé
 
Messages: 1
Inscrit le: Lun 19 Mai 2014 09:47

Re: Erreur de syntaxe

Messagepar Damien HEUTE » Lun 19 Mai 2014 11:26

Le message est clair. Il y a une erreur de syntaxe. Quelque chose qui cloche autour (avant sans doute) 'WHERE id = '135'''
La chose la plus simple a faire c'est de vérifier quelle requête tu envoies effectivement à MySQL. Comment faire?
Le temps d'un debug (et dans un environnement de développement ou de test) ajouter un echo $sql; avant mysql_query()

Et en l’occurrence tu t’apercevras qu'il y a une virgule en trop (à la fin de la ligne reponse).

REM: Même si tu ne t'attends pas à avoir des apostrophes dans le nom, le prénom ou l'id cela ne te dispense pas de faire un appel à mysql_real_escape_string (ou t'assurer qu'il s'agit d'un entier pour id) Cf. http://www.phpfacile.com/creer_un_site_web_en_php/securite_php_et_bases_de_donnees_ou_injection_sql_1.php5
Damien HEUTE
 
Messages: 163
Inscrit le: Mer 25 Fév 2009 14:27


Retour vers PHP

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invité(s)

cron