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 :

Erreur sur fonction PHP [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Points : 45
    Points
    45
    Par défaut Erreur sur fonction PHP
    transfert.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $req = "UPDATE annuaire2004 SET Nom = ".$name."
    WHERE identifiant = ".$_SESSION['login']." ;"
    
    $ret = mysql_query ($req) or die (mysql_error ()); #ligne 72
    return true;
    formulaire.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <form name="formulaire" onSubmit="return VerificationFormulaire(this)" 
    enctype="multipart/form-data" action="#" method="post">
     
    <?php
     
    # MISE A JOUR DE LA BASE
    include("transfert.php");
    if (isset($_FILES['fic']))
    {
    	transfert();
    }
     
    ?>
    Lorsque je lance formulaire.php j'obtiens l'erreur suivante :

    Parse error: parse error, unexpected T_VARIABLE in C:\wamp\www\tom\transfert.php on line 72

    Quelqu'un pourrait-il m'expliquer ??? Est-ce la syntaxe SQL qui est mal écrite ?

    Si a priori rien ne vous semble faux dîtes le moi aussi.

    Merci davance.

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Salut,
    t'as oublié un ; ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "UPDATE annuaire2004 SET Nom = ".$name."
    WHERE identifiant = ".$_SESSION['login']." ;";
    Bye

    Quand tu utilises un champ de type text tu dois mettre des quotes SET Nom = '".$name."'
    Vive les roues en pierre

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 62
    Points : 45
    Points
    45
    Par défaut
    effectivement merci il manquait un ";" mais ca ne fonctionne toujours pas, j'ai cerné le problème mais ne l'explique pas. Si quelqu'un pouvait m'éclairer sur ce qui suit :

    Quand je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "UPDATE annuaire".$i." SET Nom='$name'"
    				. " WHERE Nom = 'Simone'";
    Ca fonctionne, mais quand je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $login= $_SESSION['login'];
    $req = "UPDATE annuaire".$i." SET Nom='$name'"
    				. " WHERE identifiant = ".$login."";
    ça ne fonctionne pas. Pourquoi ???

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Tout simplement parce que vous commettez la même erreur dans votre requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = "UPDATE annuaire".$i." SET Nom='$name'"
    				. " WHERE identifiant = '".$login."';";
    Toute chaîne en SQL doit être encadrée par des apostrophes (un peu comme en PHP).

    Par ailleurs, il bon de faire échapper tous les caractères spéciaux à MySQL à l'aide de la fonction mysql_real_escape_string (pour la sécurité et pour éviter les erreurs de syntaxe) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = "UPDATE annuaire" . $i . " SET Nom='" . mysql_real_escape_string($name) . "' WHERE identifiant = '" . mysql_real_escape_string($login) . "';";

    Julp.

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

Discussions similaires

  1. [osCommerce] Interprétation d'erreur sur compatibility.php
    Par idamarco dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/10/2009, 12h55
  2. Erreur sur fonction READ (Communication Série)
    Par Kartoon67 dans le forum LabVIEW
    Réponses: 11
    Dernier message: 22/04/2009, 13h40
  3. Erreur sur fonction d'extraction des mots
    Par Siguillaume dans le forum Langage
    Réponses: 16
    Dernier message: 11/06/2008, 10h16
  4. Erreur sur Fonction PL/SQL
    Par boudou dans le forum PL/SQL
    Réponses: 2
    Dernier message: 22/10/2007, 08h34
  5. Erreur sur fonction
    Par all4linux dans le forum C
    Réponses: 2
    Dernier message: 30/06/2006, 10h40

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