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 :

[SQL] SQL syntax error dans fonction insert into


Sujet :

PHP & Base de données

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 1
    Par défaut [SQL] SQL syntax error dans fonction insert into
    Bonjour,

    Je suis bloqué depuis une semaine sur une supposée erreur de syntaxe dans une fonction insert into...
    Moi je vois pas d'erreur avec mes yeux de débutants, mais peut être que quelqu'un voit une erreur...

    Voila le code correspondant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $query_insert = sprintf("INSERT INTO shop_line_order (order, article, price_ht, price_ttc, quantity, total_ht, total_ttc) VALUES (%s, %s, %s, %s, %s, %s, %s)",
    GetSQLValueString($row_order['id'], "int"),
    GetSQLValueString($row_basket['article'], "int"),
    GetSQLValueString($row_basket['price_ht'], "double"),
    GetSQLValueString($row_basket['price_ttc'], "double"),
    GetSQLValueString($row_basket['Quantity'], "int"),
    GetSQLValueString($row_basket['total_ht'], "double"),
    GetSQLValueString($row_basket['total_ttc'], "double"));
    mysql_select_db($database_shop, $shop);
    $Result1 = mysql_query($query_insert, $shop) or die(mysql_error());
    J'ai testé chacune des variables, la fonction getSQLvlauestring fait bien son boulot!!
    Donc je ne sais pas d'où ça vient.
    S'il vous plait de l'aide parce que j'en peut plus de piétiner là!

    Merci

  2. #2
    Membre averti
    Profil pro
    Développeur multimédia
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut
    Essaie en mettant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $query_insert = sprintf("INSERT INTO shop_line_order (order, article, price_ht, price_ttc, quantity, total_ht, total_ttc) VALUES (%s, %s, %s, %s, %s, %s, %s)",
    GetSQLValueString($row_order['id'], "int"),
    GetSQLValueString($row_basket['article'], "int"),
    GetSQLValueString($row_basket['price_ht'], "double"),
    GetSQLValueString($row_basket['price_ttc'], "double"),
    GetSQLValueString($row_basket['Quantity'], "int"),
    GetSQLValueString($row_basket['total_ht'], "double"),
    GetSQLValueString($row_basket['total_ttc'], "double"));
    mysql_select_db($database_shop, $shop);
    $Result1 = mysql_query($query_insert) or die(mysql_error());

  3. #3
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Pourquoi ne pas faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query_insert = sprintf("INSERT INTO shop_line_order (order, article, price_ht, price_ttc, quantity, total_ht, total_ttc) VALUES (%s, '".$row_basket['article']."','".$row_basket['price_ht']."' etc etc");
     
    mysql_select_db($database_shop, $shop);
    $Result1 = mysql_query($query_insert) or die(mysql_error());

  4. #4
    Membre expérimenté

    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
    Par défaut
    order est un mot-clé réservé : il est certainement nécessaire de le backticker (ie écrire `order`) - à moins de le renommer. En tout cas, le message d'erreur précis et exact nous aiderait certainement plus !

    @ThomasR : non il ne faut pas injecter directement les valeurs dans les requêtes, il faut les protéger.

Discussions similaires

  1. Problème dans la fonction INSERT INTO
    Par had4789 dans le forum Excel
    Réponses: 2
    Dernier message: 21/06/2014, 20h42
  2. [SQL] Problème de guillemets dans un INSERT INTO SELECT
    Par Lenezir dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/02/2008, 14h21
  3. [sql Flash] Lecture BDD dans Flash , INSERT ou UPDATE
    Par Keroik dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/08/2007, 11h20
  4. [SQL SERVER] Syntax error converting the varchar value
    Par freud dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2007, 17h51
  5. probleme dans un INSERT INTO...........SELECT
    Par briiice dans le forum Requêtes
    Réponses: 5
    Dernier message: 26/01/2006, 15h13

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