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

Requêtes MySQL Discussion :

Probleme script PHP/MySQL


Sujet :

Requêtes MySQL

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut Probleme script PHP/MySQL
    Bonjour,
    Etant actuellement en stage, je dois creer une interface php permettant de mettre a jour une base MySQL a partir d'une autre base le tout en PHP. Mon probleme est le suivant lors de la MAJ d'une de mes tables mysql à l'aide de mon script, j'ai cette erreur :

    Requete invalide : 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 'ADAPTATION // RESEAU RJ45')' at line 1

    Voici mon script php:
    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
     
    <?
        echo "majpn<BR>";
        include 'connectodbc.php';
        $result = odbc_exec($conn,"select distinct PASSY,PMAR,PTYP,PMOD,PDES from PIECELPN ");
        $i = 0;
        while (odbc_fetch_array($result))
        {
            $passy[$i]=odbc_result($result,"PASSY");
            $pmar[$i]=odbc_result($result,"PMAR");
            $ptyp[$i]=odbc_result($result,"PTYP");
            $pmod[$i]=odbc_result($result,"PMOD");
            $pdes[$i]=odbc_result($result,"PDES");
     
            $i++;
        }
        odbc_close($conn);
        include 'connectsql.php';
        for ($j=0;$j<= $i;$j++)
        {
            echo "$passy[$j],$pdes[$j]<BR>";
    if (!mysql_query("replace into listepn (`passy`,`pmar`,`ptyp`,`pmod`,`pdes`) values ('$passy[$j]','$pmar[$j]','$ptyp[$j]','$pmod[$j]','$pdes[$j]')"))
            {
                die('Requete invalide : ' . mysql_error() );
            }
        }
     
        mysql_close();
    ?>
    L'erreur je pense se produit sur la variable pdes
    Ayant penser a un probleme de caracteres spéciaux, j'ai essayé la fonction :

    mysql_escape_string()

    Mais cela n'a rien changé et j'ai toujour mon erreur....
    N'ayant plus d'idées, j'espere que quelqu'un pourra m'aider (avant le week end ...!!!). Je vous remercie par avance d etoutes vos réponses


  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Un conseil : stocke ta requête dans une variable $req et affiche là au moment de l'exécution comme ça tu saura ce qui merdouille.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Euhh...t'es sur c'est un replace!! donc cela retourne vrai ou faux c'est tout...!!! Enfin c'est ce qui me semblait mais je peut me tromper..lol



    PS: ALLEZ PAU-ORTHEZ!!!

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Allez je vais être sympa (malgré que tu sois un riche palois)...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $req = "replace into listepn (`passy`,`pmar`,`ptyp`,`pmod`,`pdes`) values ('$passy[$j]','$pmar[$j]','$ptyp[$j]','$pmod[$j]','$pdes[$j]')";
    echo $req;
    if (!mysql_query($req))
    ...
    Comme ça tu vois la requête qui est réellement exécutée et tu peux voir si elle est bien formée ou si le problème vient d'ailleurs.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    moi aussi je vais etre sympa ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = "replace into listepn (`passy`,`pmar`,`ptyp`,`pmod`,`pdes`) values ('".$passy[$j]."','".$pmar[$j]."','".$ptyp[$j]."','".$pmod[$j]."','".$pdes[$j]."')";

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    lol merci!!!

    PS:on est juste plus fort...

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    Citation Envoyé par boo64
    Euhh...t'es sur c'est un replace!! donc cela retourne vrai ou faux c'est tout...!!! Enfin c'est ce qui me semblait mais je peut me tromper..lol



    PS: ALLEZ PAU-ORTHEZ!!!
    Attention, là c'est un REPLACE de SQL, autant dire un insert/update, c'est pas la même chose.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    oui c vrai steph, c'est la fin de semaine c'est pour ça!!!

  9. #9
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par boo64
    lol merci!!!

    PS:on est juste plus fort...

  10. #10
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    héhé alors c'est bon tu as ta solution allé bon courage

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    replace into listepn (`passy`,`pmar`,`ptyp`,`pmod`,`pdes`) values ('AXIS540 ','ADD','DIVERS ',' ','BOITIER D'ADAPTATION // RESEAU RJ45')


    voila ce qui est affiché ..elle est où l'erreur.
    merci deja pour vos conseils!!

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    aidez moi svp c'est la fin de semaine!!!

  13. #13
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 82
    Points : 78
    Points
    78
    Par défaut
    essai je te promet rien mais bon ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    replace into listepn (`passy`,`pmar`,`ptyp`,`pmod`,`pdes`) values ('AXIS540 ','ADD','DIVERS ','NULL','BOITIER D'ADAPTATION // RESEAU RJ45')

  14. #14
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    C'est le quote de Boitier d'Adaptation qui pose problème donc tu étais sur la bonne voie. Je laisse les autre répondre car je ne suis pas compétent là-dessus (magic quotes, addslashes et al.). Bon courage.

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    je peu pas regarde mon script c'est des variables que j'ai pas des valeurs..

  16. #16
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    merci jwhite

  17. #17
    Membre actif
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 235
    Points : 269
    Points
    269
    Par défaut
    replace into listepn (`passy`,`pmar`,`ptyp`,`pmod`,`pdes`) values ('AXIS540 ','ADD','DIVERS ','NULL','BOITIER D\'ADAPTATION // RESEAU RJ45')

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Je fais ca avec quel fonction steph? car pdes varie a chaque ligne..

  19. #19
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Utilise addslashes avant de placer tes variables comme ceci:


    $req
    = 'replace into listepn ("passy","pmar","ptyp","pmod","pdes") values ("'.addslashes($passy&#91;$j]).'","'.
    addslashes($pmar&#91;$j]).'","'.
    addslashes($ptyp&#91;$j]).'","'.
    addslashes($pmod&#91;$j]).'","'.
    addslashes($pdes&#91;$j].'")';
    Colorez votre code PHP sur les forums grâce à Developpez.com

  20. #20
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    A la limite tu remplaces tes quotes dans ton code par des guillemets et ça va passer mais du coup il faut pas de guillemets dans le contenu de tes variables (ce que je pense). Il doit cependant exister une solution plus propre et ça m'intéresse aussi.


    Edit : merci Yobs c'est la solution clean.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 19h59
  2. [EasyPHP] probleme script php/MySQL
    Par daninou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/01/2008, 15h31
  3. Réponses: 9
    Dernier message: 05/01/2006, 13h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 01/12/2005, 17h45
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 09h33

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