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

EDI, CMS, Outils, Scripts et API PHP Discussion :

erreur d'exécution script d'insertion


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut erreur d'exécution script d'insertion
    Bonjour à tous,

    Débutant en PHP, je n'arrive pas à résoudre une erreur :

    "Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/emorvan/www/html/ScriptInsertTabArt.php on line 9
    Parse error: syntax error, unexpected T_STRING in /home/emorvan/www/html/ScriptInsertTabArt.php on line 9"

    lors de l'envoi d'une requête d'insertion avec une
    "<form name="LayoutRegion1FORM" action="ScriptInsertTabArt.php" method=POST>"
    en bonne et due forme.

    Je précise qu'il n'y a pas (d'après Eclipse) d'erreur de syntax dans aucun des scripts PHP. De plus je ne vois rien de spécial sur la "line 9"
    Evidemment l'insertion ne s'exécute pas.
    Je piétine...

    Si quelqu'un pouvait m'aiquiller...

    Merci d'avance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Parse error c'est souvent un problème de quotes ou d'accolades... Mais là à part te dire que le problème est (probablement) situé à la ligne 9, je ne peux pas faire grand-chose Un peu de code ?

  3. #3
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut
    Bonjour et merci pour ton aide,
    voici le code qui est sensé contenir l'erreur :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Coucou</title>
    </head>
    <body>
    <?php
      $RefArt  = $_POST['RefArtEdit'];
      $NomArt  = $_POST['NomArtEdit'];
      $Tar1Art = $_POST['Tar1Edit'];
      $Tar2Art = $_POST['Tar2Edit'];
      $Tar3Art = $_POST['Tar3Edit'];
      $Tar4Art = $_POST['Tar4Edit'];
      $PhotoPt = $_POST['PhotoPtEdit'];
      $PhotogD = $_POST['PhotoGdEdit'];
     
      $connexion = mysql_pconnect("monserveur", "site", "mdpasse");
     
      echo $RefArt. ' ' . $NomArt. ' ' .$Tar1Art. ' ' .$Tar2Art. ' ' .$Tar3Art. ' ' .$Tar4Art;
     
      $requeteInsert = 'INSERT INTO TabArt '
                     . 		'VALUES'
      				 .		'('
    				 .		$RefArt .',' 
    				 .		$NomArt .',' 
    				 .		$Tar1Art.',' 
    				 .		$Tar2Art.',' 
    				 .		$Tar3Art.',' 
    				 .		$Tar4Art.',' 
    				 .		$PhotoPt.',' 
    				 .		$PhotogD 
    				 .		')';
     
      mysql_select_db(site, $connexion);
      $resultat  = mysql_query($requeteInsert, $connexion);
    ?>
    </body>
    </html>

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    ça ne serait pas celle-là la ligne 9 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db(site, $connexion);
    Il faut mettre le nom entre quotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db('site', $connexion);

  5. #5
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut
    Non, le problème ne vient pas de là,
    en fait j'ai simplement remplacé les valeurs réelles de connexions par des valeurs "bidons".
    D'ailleur, "mysql_select_db(MonSite, $connexion);" fonctionne bien sans caute dans les autres scripts.
    J'ai identifié la ligne 9 en question (en modifiant le script à plusieurs reprises) comme étant la 2e ligne de récupération des données postées :

    $NomArt = $_POST['NomArtEdit'];

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Remplacer tes indentifiants de connexion est un TRES bon réflexe (en plus ça m'évite du boulot en tant que modo )

    Bon, revenons à nos moutons : SI tu as un problème sur la récupération des données et vu que la ligne a l'air correcte, ça peut venir du formulaire ou de ce que tu insères dans le champ....

    Essayons un var_dump, que tu places au début de la partie php du script. Regarde si il ya bien une entrée pour NomArtEdit et quelle tête ça a...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    var_dump($_POST);
    echo '</pre>';

  7. #7
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut
    Merci.

    J'ai copié les lignes du dump au début du script php, mais il ne se passe rien, de plus, il renvoie la même erreur.
    Le formulaire que j'utilise est à l'adresse
    http://www.e-morvan.com/html/maj-bd.php

  8. #8
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par Celira Voir le message
    ça ne serait pas celle-là la ligne 9 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db(site, $connexion);
    Il faut mettre le nom entre quotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db('site', $connexion);
    Il faut faire ça. Je ne sais pas si ton problème vient de là, mais ça en provoquera un, c'est sûr !

  9. #9
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut
    Non, cela ne vient pas de ça, avec ou sans caute, cela ne change rien au problème.
    Par contre, je vais rectifier tous mes autres script qui fonctionnent pourtant très bien avec
    mysql_select_db(site, $connexion);

  10. #10
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut problème de caractère
    Dans l'erreur que tu énonçais au début. Il memsemble que ça peut venir d'un caractère non reconnu dans ce que tu passes dans tes variables.
    Pour Eclipse il n'y a pas d'erreur car il n'y a pas d'erreur de syntaxe. Celle-ci nait d'une confusion au moment où les variables envoient leur contenu.
    J'ai eu le même type de message avec des textes importés depuis word par exemple...
    Enfin dernière hypothèse... Tes $_POST liés aux variables photos, ça ne serait pas lutôt des $_FILES ?...

  11. #11
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut
    Les photo en question ne sont rien de plus que des chaînes de caractères :
    varchar(50).

  12. #12
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut
    J'ai refait la page HTML et l'erreur a disparue. Comprenne qui pourra...
    Par contre, l'insertion ne se fait pas

    Dump :

    array(9) {
    ["RefArtEdit"]=>
    string(7) "RefArt2"
    ["NomArtEdit"]=>
    string(7) "NomArt2"
    ["PhotoPtEdit"]=>
    string(13) "petite photo2"
    ["PhotoGdEdit"]=>
    string(13) "grande photo2"
    ["Tar1Edit"]=>
    string(1) "1"
    ["Tar2Edit"]=>
    string(1) "2"
    ["Tar3Edit"]=>
    string(1) "3"
    ["Tar4Edit"]=>
    string(1) "4"
    ["ValidBouton"]=>
    string(7) "Valider"
    }

    A la fin du script je demande :
    $requeteInsert = 'INSERT INTO TabArt '
    . 'VALUES'
    . '('
    . $RefArt .','
    . $NomArt .','
    . $Tar1Art.','
    . $Tar2Art.','
    . $Tar3Art.','
    . $Tar4Art.','
    . $PhotoPt.','
    . $PhotoGd
    . ')';

    mysql_select_db("maBD", $connexion);
    $resultat = mysql_query($requeteInsert, $connexion);
    echo $resultat;

    Il s'en f... royalement, il a décidé de ne pas afficher $resultat
    pourquoi ? svp

  13. #13
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Peut-être une erreur sql : ajoutes un renvoi d'erreur mysql_error :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysql_query($requeteInsert, $connexion) or die ('Erreur sur : '.$requeteInsert.'<br/>'.mysql_error());
    OU éventuellement fait un echo de ta requete avant exécution et donnes-nous le résultat.

  14. #14
    Inactif
    Homme Profil pro
    Analyste-programmeur Delphi
    Inscrit en
    Décembre 2003
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-programmeur Delphi

    Informations forums :
    Inscription : Décembre 2003
    Messages : 490
    Points : 287
    Points
    287
    Par défaut
    C'était bien une erreur, ou plutôt 2 erreurs dans l'ordre SQL.
    J'avais mal nommé $PhotoGd en $PhotogD,
    et j'avais oublié de concaténer des cautes dans l'ordre SQL, s'agissant de champ VARCHAR.
    Merci beaucoup pour ton aide, je n'aurai jamais trouvé sans le dump et le "or die ('Erreur sur : '.$requeteInsert.'<br/>'.mysql_error());"
    Cela me resservira.

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par od.dev Voir le message
    Merci beaucoup pour ton aide, je n'aurai jamais trouvé sans le dump et le "or die ('Erreur sur : '.$requeteInsert.'<br/>'.mysql_error());"
    Cela me resservira.
    C'est ce qu'on appelle l'expérience
    Et pour info les balises <pre></pre> autour du dump permettent d'organiser l'affichage du tableau. Sans elles, tu as tout en vrac sur une ligne

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

Discussions similaires

  1. Erreur d'exécution - script VBS
    Par lord_kaiser dans le forum VBScript
    Réponses: 16
    Dernier message: 10/03/2008, 16h53
  2. Erreur d'exécution script
    Par Boris_nogues dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 14/10/2007, 11h42
  3. Erreur à l'exécution d'un script
    Par stepd dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 24/08/2006, 10h10
  4. [Système] Erreur d'exécution d'un petit script
    Par couscoussier dans le forum Langage
    Réponses: 3
    Dernier message: 04/04/2006, 10h04
  5. Réponses: 6
    Dernier message: 29/11/2005, 13h22

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