IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Erreur de syntaxe près de '= 'mom' WHERE Nom = 'Mol'' à la ligne 1


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut Erreur de syntaxe près de '= 'mom' WHERE Nom = 'Mol'' à la ligne 1
    slt,

    j'ai un petit souci syntaxique,depuis 2 heure j'essai de le ressoudre mais pas de solution.voici le souci c que ma page m'affiche toujours ce message d'erreur,je c tres bien qu'il s'agit des acco mais bon j'ai tout essayr mais son resultat.

    voila ma fonction si quelqu'un peut m'aider svp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public function UpdateUser($elts, $ind) {
                            if(isset($elts) && !empty($elts) && isset($ind) && !empty($ind)) {
    				if(is_array($elts) && is_string($ind)){
    					$i = 0;
    			         	$set = "SET ";
    					foreach($elts as $key => $value) {
    					       $set = $key.' = '."'$value'";
    					       $i++;
    					       if($i < count($elts)) $set .= ",";
    				        }
     
                                            Database::request('UPDATE users '.$set.' WHERE Nom = '."'$ind'");
    				} else {
    					echo "Vérifiez vos coordonnées SVP !";
    		         	}
    			} else {
    			        echo "Vérifiez vos coordonnées SVP !";	
    			}
                    }
    et pour ma page c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    if(isset($_POST['Name']) && isset($_POST['Surname']) && isset($_POST['Pays']) && isset($_POST['annee']) && isset($_POST['jour']) && isset($_POST['mois']) && isset($_POST['Email']) && isset($_POST['Pseudo']) && isset($_POST['Password']) ){
     
                   $Name = $_POST['Name'];
                   $Surname = $_POST['Surname'];
                   $Pays = $_POST['Pays'];
                   $jour = $_POST['jour'];
                   $mois = $_POST['mois'];
                   $annee = $_POST['annee'];
                   $Email = $_POST['Email'];
                   $Pseudo = $_POST['Pseudo'];
                   $Password = $_POST['Password'];
                   $Elements = array (    
                                          'id_user'=>34,
                                          'Nom'=>$Name,
                                          'Surname' => $Surname,
                                          'Pays' => $Pays,
                                          'jour' => $jour,
                                          'mois' => $mois,
                                          'annee' => $annee,
                                          'Email' => $Email,
                                          'Pseudo' => $Pseudo,
                                          'Password' => $Password,
     
                                  );
                   if(!$formular->VerifName($Name) && !$formular->VerifSurname($Surname) && !$formular->VerifEmail($Email)) {
                            $user->UpdateUser($Elements, "Moh");
                   }
     
         } 
         ?>

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour,

    Tu as essayé de faire un echo de ta requête générée pour voir si la syntaxe SQL était correcte ?

  3. #3
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    tu as une petite erreur ici, au lieu de concaténer tes champs avec les valeurs à leur affecter tu les écrases à chaque tour du foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    					foreach($elts as $key => $value) {
    					       $set .= $key.' = '."'$value'";
    					       $i++;
    					       if($i < count($elts)) $set .= ",";
    				        }
    forcément il manquera le SET à ta requete...

  4. #4
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 387
    Points
    9 387
    Par défaut
    La variable $value est injectée dans la requête sans aucune protection.
    Bref suffit qu'il y ai un apostrophe ou autre et tu te choppes ce genre d'erreur.

    Sous MySQL : mysql_real_escape_string()
    Sous MySQLI : mysqli_real_escape_string()
    Sous PDO : pdo::quote() ou bien utiliser les requêtes préparées

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    ça m'a affiché :
    UPDATE users Password = 'mom' WHERE Nom = 'Moh' Erreur de connexion : Connexion échouée => CODE :Erreur de syntaxe près de '= 'mom' WHERE Nom = 'Moh'' à la ligne 1

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par transgohan Voir le message
    La variable $value est injectée dans la requête sans aucune protection.
    Bref suffit qu'il y ai un apostrophe ou autre et tu te choppes ce genre d'erreur.

    Sous MySQL : mysql_real_escape_string()
    Sous MySQLI : mysqli_real_escape_string()
    Sous PDO : pdo::quote() ou bien utiliser les requêtes préparées
    Oui oui biensure j les ai enlevé pour mieux vérifier

  7. #7
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    Citation Envoyé par vorace Voir le message
    tu as une petite erreur ici, au lieu de concaténer tes champs avec les valeurs à leur affecter tu les écrases à chaque tour du foreach :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    					foreach($elts as $key => $value) {
    					       $set .= $key.' = '."'$value'";
    					       $i++;
    					       if($i < count($elts)) $set .= ",";
    				        }
    forcément il manquera le SET à ta requete...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    lol Merci beaucoup beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur de syntaxe près de ''
    Par akara dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/03/2009, 15h03
  2. Erreur de syntaxe près de 'ENGINE=InnoDB'
    Par kamaldev dans le forum Requêtes
    Réponses: 5
    Dernier message: 05/06/2008, 16h11
  3. Réponses: 7
    Dernier message: 15/08/2007, 19h15
  4. [MySQL] problème : Erreur de syntaxe près de '' à la ligne 1
    Par Amandine62 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/02/2007, 19h28
  5. [MySQL] Erreur de syntaxe près de ' '', '', à la ligne 1
    Par micka30 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/01/2007, 02h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo