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 SQL Discussion :

Une erreur de syntaxe introuvable


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Une erreur de syntaxe introuvable
    Bonjour,

    le sujet de la conversation est plutôt basique en effet, "encore une erreur de syntaxe, vérifie tes virgules et tes guillemets !" mais sur ce coup là, j'avoue ne pas voir mon erreur.

    J'ai donc l'erreur suivante :
    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 'Resource id #11' at line 1
    Je commence donc à vérifier mes requètes unes à unes.
    Le fichier concerné n'en contient que 3 :

    La première :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT id, name FROM reservation WHERE beneficiaire='".getUserName()."' AND ok=0";
    La seconde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $somme_sql = "SELECT prix FROM reservation WHERE beneficiaire='".getUserName()."' AND ok=0";
    La troisième :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $update = "UPDATE reservation SET ok=1 WHERE beneficiaire='".getUserName()."'";
    La fonction getUserName() ne fait que retourner $_SESSION['login'] si cette variable existe.
    Je ne vois pas d'où cette erreur peut donc venir.

    Par avance, merci.

    Cordialement,
    Rudy.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 188
    Points : 28 051
    Points
    28 051
    Par défaut
    ...near 'Resource id #11' at line 1
    A priori l'erreur se trouverrait à proximité de id !!

    Ton champ id ou ton champ name sont-il correctement orthographiés? N'y aurait-il pas des majuscules à respecter ?
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse.
    J'ai vérifié plusieurs fois les noms de mes champs (et ai même fini par écrire ma requètes avec des copiés/collés afin d'être sûr de tout orthographier correctement). Ce n'est donc, a priori, pas un problème d'orthographe.

    Je reste toujours aussi perplexe face à cette erreur ...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    A priori tu nous montres des variables contenant du sql, as -tu essayé de regarder le contenu de tes variables à l'exécution , de les prendre en debug, et d'exécuter directement une par une ces requêtes dans un client Mysql pour voir si le message d'erreur ne serait pas plus clair.

    A+
    Soazig

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Le contenu de ma variable est correct.
    getUserName() me retourne bien le login. Dans mon cas : CLARKII.
    Ma requète devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT id, name FROM reservation WHERE beneficiaire='CLARKII' AND ok=0
    Dans le doute, j'ai essayé avec des guillemets " et non de simples ' mais cela ne change rien.

    De plus, si j'execute la requète dans un client MySQL, elle s'execute parfaitement ... Allez comprendre ...

    Merci.
    Rudy.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 792
    Points : 34 013
    Points
    34 013
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par rudyBSD Voir le message
    Le contenu de ma variable est correct.
    getUserName() me retourne bien le login. Dans mon cas : CLARKII.
    Ma requète devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT id, name FROM reservation WHERE beneficiaire='CLARKII' AND ok=0
    Est-ce vraiment cette requête qui est envoyée par le programme au serveur ?
    Un echo de chaque requête avant leur demande d'exécution permettrait peut-être de détecter d'où vient le problème.

    Ce qui est bizarre, c'est que normalement quand MySQL dit :
    for the right syntax to use near 'Resource id #11' at line 1
    C'est que l'erreur se trouve juste avant le texte qu'elle donne entre quotes, soit juste avant 'Resource id #11'. Or ce texte ne figure dans aucune requête présentée !

    D'où mon soupçon que la vraie requête envoyée n'est pas celle que vous croyez.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Désolé de vous avoir fait perdre votre temps, je suis simplement gogole.
    Faire $sql = "SELECT ....;" pour ensuite avoir $query = mysql_query($query); au lieu de $query = mysql_query($sql); c'est franchement débile ...
    Je ne m'en suis aperçu qu'il y a 10 minutes ... Parfois, mieux vaut aller s'aérer un peu plutôt que de rester devant le code, le recule, ça fait du bien.
    Encore désolé pour ce topic inutile.

    Cordialement,
    Rudy.

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

Discussions similaires

  1. Aide pour identifier une erreur de syntaxe
    Par tribalou dans le forum Cobol
    Réponses: 10
    Dernier message: 21/02/2008, 01h46
  2. Erreur de syntaxe introuvable sur requête
    Par manzane dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/06/2007, 11h24
  3. erreur de syntaxe introuvable
    Par salseropom dans le forum C
    Réponses: 8
    Dernier message: 01/03/2007, 17h00
  4. [VB.Net] Pourquoi ai-je une erreur de syntaxe INSERT UPDATE ?
    Par zzzmoi dans le forum Accès aux données
    Réponses: 14
    Dernier message: 17/08/2006, 15h21
  5. Y aurait-il une erreur de syntaxe ?
    Par mpat dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/12/2005, 16h07

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