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

PHP & Base de données Discussion :

Error in your SQL syntax [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Error in your SQL syntax
    Bonjour !

    Je suis devant un problème bien étrange, en effet lorsque je tente d’exécuter une requête tout à fait légitime, SQL ne me répond soit rien du tout, soit il m'insulte en me disant qu'il se trouve une erreur de syntaxe ! Voyez plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        $email = mysql_real_escape_string($_POST['mail']) ;
        $key = md5(microtime(TRUE)*100000);
     
    $req = $bdd->prepare("INSERT INTO awa_recovery(email, key) VALUES(:email, :key)") or die(print_r($bdd->errorInfo()));
        $req->execute(array(
            'email' => $email,
            'key' => $key)
    	);
    Ci-dessus la première requête tentée, les variables ont été testés et fonctionnent. Ce n'est pas le cas de la requête ! Alors j'ai tenté autre chose plus rapide (probablement moins sûr) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $bdd->exec("INSERT INTO awa_recovery SET email = '" . $email . "', key = '" . $key . "' ") or die(print_r($bdd->errorInfo()));
    Ici au moins SQL montre un signe de vie en me renvoyant une erreur :

    Array ( [0] => 42000 [1] => 1064 [2] => 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 'key = '946e45cc60fa4a34bd53a38dc0f51d46'' at line 1 ) 1
    Si vous avez une idée d'où pourrait venir le problème, car ce langage est encore loin d'être mon fort, je serais très ravi de l'entendre ^-^ !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ne mélange pas PDO et l'extension mysql classique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
    $email = $_POST['mail'];
    $key = md5(microtime(TRUE)*100000);
     
    $req = $bdd->prepare("INSERT INTO awa_recovery (email, key) VALUES (:email, :key)");
    $req->execute(array(
            ':email' => $email,
            ':key' => $key)
    	);

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Oh my god, j'ai un truc encore plus violent mais qui me raconte à peu près la même chose :

    PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 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 'key) VALUES('mail@domaine.com', 'bee9d08e29af8cc465c96b30805ed56a')' at line 1 in C:\wamp\www\awakening\retrievepw.php on line 14
    J'avoue que ça me dépasse : <

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    key est un mot réservé, renomme ta colonne.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2012
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    En effet c'était cela, merci beaucoup ! Il faut que j'aille me renseigner sur les mots réservés pour éviter ce genre d'accidents à l'avenir, encore merci !

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155

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

Discussions similaires

  1. Probleme mysql error in your SQL syntax;
    Par smile_88 dans le forum MySQL
    Réponses: 1
    Dernier message: 02/05/2010, 16h18
  2. erreur #1064 - You have an error in your SQL syntax;
    Par tamatifa dans le forum Installation
    Réponses: 1
    Dernier message: 20/05/2009, 22h21
  3. [MySQL] erreur dans une boucle ?You have an error in your SQL syntax; check the manual that c
    Par keokaz dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 17/10/2008, 23h08
  4. Erreur incomprehensible:You have an error in your SQL syntax.
    Par Siguillaume dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/06/2008, 10h18
  5. You have an error in your SQL syntax; check the manual ..
    Par Spaccio dans le forum Requêtes
    Réponses: 5
    Dernier message: 09/07/2006, 17h39

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