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 :

Syntaxe SQLI avec INSERT [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 110
    Points : 73
    Points
    73
    Par défaut Syntaxe SQLI avec INSERT
    Bonjour,

    Je crise depuis plusieurs heures sur une instruction qui devrait être simple.
    Voici mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $strSQL = "INSERT INTO contacts (statut) VALUES (' ".$statut." ') WHERE id_contact='.$id.' ";
    mysqli_query($con, $strSQL);
    IF (mysqli_query($con, $strSQL)) { echo "Nouvel enregistrement validé avec changement de statut pour enregistrement n° ".$id; }
    ELSE { echo "Erreur: <br>" . $sql . "<br>" . mysqli_error($con); }
    qui me renvoie le message d'erreur suivant :
    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 'WHERE id_contact=253' at line 1
    Sachant que la variable $id vaut 253 et $statut = TRAITE

    Merci de votre aide.
    J'ai fait un autre test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $strSQL = 'INSERT INTO contacts (statut) VALUES (" '.$statut.' ") WHERE id_contact=" '.$id.' " ';
    mysqli_query($con, $strSQL);
    IF (mysqli_query($con, $strSQL)) { echo "Nouvel enregistrement validé avec changement de statut pour enregistrement n° ".$id; }
    ELSE { echo "Erreur: <br>" . $sql . "<br>" . mysqli_error($con); }
    et voici le mesage d'erreur

    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 'WHERE id_contact="253"' at line 1
    et si je change mon script comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $strSQL = 'INSERT INTO contacts (statut) VALUES (" '.$statut.' ") WHERE id_contact='.$id.' ';
    mysqli_query($con, $strSQL);
    IF (mysqli_query($con, $strSQL)) { echo "Nouvel enregistrement validé avec changement de statut pour enregistrement n° ".$id; }
    ELSE { echo "Erreur: <br>" . $sql . "<br>" . mysqli_error($con); }
    j'ai le message d'erreur

    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 'WHERE id_contact=253' at line 1

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $strSQL = "INSERT INTO contacts (statut) VALUES ('".$statut."') WHERE id_contact=".$id;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 110
    Points : 73
    Points
    73
    Par défaut
    Cela ne marche pas

    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 'WHERE id_contact=253' at line 1
    mais ne faut-il rien à la fin de la ligne avant le ; ?

    De plus, l'erreur est-elle dans le message d'erreur (WHERE id_contact=253) ou bien se trouve-t-elle avant ?

    Merci de votre aide.

  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
    Non il n'y a besoin de rien à la fin.

    L'erreur doit être juste avant le WHERE.
    Fait pour voir ce qui se passe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 110
    Points : 73
    Points
    73
    Par défaut
    Donc, suite à l'echo de $strSQL j'ai le message suivant : INSERT INTO contacts (statut) VALUES ('traite') WHERE id_contact=253
    J'ai supposé que les ' étaient de trop donc j'ai modifié mon script comme cela

    voici le résultat de l'echo : INSERT INTO contacts (statut) VALUES (traite) WHERE id_contact=253

    et le message d'erreur :
    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 'WHERE id_contact=253' at line 1
    Je saisi que je ne suis pas à l'aise avec les ' et les " mais là je suis perdu

  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
    Par défaut
    Il n'y a pas de WHERE dans une requête INSERT.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 110
    Points : 73
    Points
    73
    Par défaut
    Cela fait 3 jours que je travaille sur ce dossier sans trop lever la tête du guidon et donc je fais n'importe quoi.
    C'est un UPDATE que je veux faire.

    Je suis vraiment désolé de vous avoir fait perdre votre temps.
    Bonne fin de journée à vous.

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 110
    Points : 73
    Points
    73
    Par défaut
    Encore toutes mes excuses.

    Pour ceux qui veulent avoir la solution d'un UPDATE de TBALE avec des variables voici le bon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $strSQL = "UPDATE contacts SET statut='".$statut."' WHERE id_contact=".$id;
    mysqli_query($con, $strSQL);
    IF (mysqli_query($con, $strSQL)) { echo "Nouvel enregistrement validé avec changement de statut pour enregistrement n° ".$id; }
    ELSE { echo "Erreur: <br>" . $sql . "<br>" . mysqli_error($con); }

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

Discussions similaires

  1. Problème de syntaxe avec INSERT INTO
    Par ImmoTPA dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/11/2014, 09h48
  2. [AC-2007] probleme de syntaxe avec insert
    Par rominous41 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/05/2011, 12h11
  3. [MySQL] right syntax to use near 's' )' at line 5 avec INSERT INTO
    Par monlou dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/07/2010, 20h42
  4. probleme clé sequentiel avec insert into
    Par shake dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/06/2004, 15h54
  5. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 01h02

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