Erreur SQL UPDATE [Résolu]

Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Dernière intervention
2 juillet 2014
- 27 avril 2012 à 14:25 - Dernière réponse :
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
- 28 avril 2012 à 10:26
Bonjour,

J'ai un petit script EN AJAX qui me met simplement à jour 1 champ de la base de données en cliquant sur une checkbox. La donnée reçue est "OUI" ou "NON".
Le type champ en base dans le quel je souhaite insérer cette information est "TINYINT(1)".
Lorsque j'exécute mon UPDATE ça me met :
"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 ''rdv' <gras>'1' WHERE guid 'oqvysha6dvvpbgmnuijoms59qetylthp'' at line 1</gras>"

Je convertis juste avant la valeur "OUI" en 1 et la valeur "NON" en 0. Donc je ne comprends pas mon erreur.

Voici mon code :
if( isset( $_POST['datas'] ) && isset( $_POST['guid'] ) && isset( $_POST['action'] ) )
{
  $Data = $_POST['datas']; // "Oui" ou "Non"
  $GUID = $_POST['guid']; // Unique ID du prospect
  $Action = $_POST['action']; // "rdv" ou "inscription"

  $Conn = mysql_connect($dbhost,$dbuser,$dbpass);
  mysql_select_db($dbname,$Conn);

  // On vient chercher le nom et le prenom du client a partir du GUID envoye grace a la requete AJAX depuis database.php
  $res mysql_query( "SELECT nom,prenom FROM logs WHERE GUID '".$GUID."' " ); // Execution de la requete
  while( $data = mysql_fetch_assoc( $res ) ) // Tant qu'il y a des resultats (normalement 1 seul et unique, d'ou le GUID)
  {
    // On transforme la variable $Data qui était une String, en Int
    if( strtolower( $Data ) "oui" ) $Data (int)"1";
    else $Data = (int)"0";

    // Requete qui pose probleme !!
    $res_up mysql_query("UPDATE logs SET '".$Action."' '".$Data."' WHERE guid = '".$GUID."' ") or die( mysql_error()."
".$sql ); 

    echo "
"; // Affichage
      echo "Fiche de ".htmlentities( $data['nom'] )." ".htmlentities( $data['prenom'] )." modifiée.
";
      if( $Action == "rdv" )  echo "Rendez-vous ";
      else  echo "Inscription ";
      echo " : ".$Data."";
    echo "
";
  }
  mysql_close($Conn);
}


Si vous pouviez me donner un petit coup de main pour me débugger, ça serait gentil de voter part.

En vous remarciant,

Ju'
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Dernière intervention
20 février 2013
- 27 avril 2012 à 15:40
3
Merci
Bonjour,

Le nom des champs dans la base de s'échappe pas avec ' mais avec ` (altgr + 7)
Tente de remplacer :
    $res_up mysql_query("UPDATE logs SET '".$Action."' '".$Data."' WHERE guid = '".$GUID."' ") or die( mysql_error()."
".$sql ); 


Par:
    $res_up mysql_query("UPDATE logs SET `".$Action."` '".$Data."' WHERE guid = '".$GUID."' ") or die( mysql_error()."
".$sql ); 



bonne après midi

Merci cs_47 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_47
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Dernière intervention
2 juillet 2014
- 27 avril 2012 à 16:13
0
Merci
Bonjour et merci de ta réponse !

Oui suis-je bête je n’avais pas fait attention à ça ! Le souci était exactement là !
Merci beaucoup et bon weekend !

Ju'
Commenter la réponse de payetonju
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Dernière intervention
30 juin 2013
- 28 avril 2012 à 10:26
0
Merci
N'oublie pas de bien filtrer ce que tu mets dans ton SQL... Ici par exemple, quelqu'un pourrait écraser le champ qu'il veut en modifiant $_POST['action'] et faire ignorer la condition en bidouillant $_POST['guid'] ...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Commenter la réponse de cs_ghuysmans99

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.