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 :

Debuggage d'un INSERT [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Par défaut Debuggage d'un INSERT
    Bonjour à tous,

    je m'en remet à vous car je sèche sur mon script qui fonctionne sans fonctionner.

    Je commence par le script, un bête script d'INSERT dans une table :

    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
    <?
     
    	require("styles/variables.php");
     
    	$connexion = mysql_connect ($serveur, $user, $pwd) or die ("Echec de connexion au serveur"); 
    	$db = mysql_select_db ($base, $connexion) or die ("Impossible de sélectionner la base de données");
     
    	$prix_total = $prix_litre*$quantite;
    	$consommation = $quantite/($distance/100);
     
     
    	$req1 = mysql_query("INSERT INTO consommations (ref_voiture,date,station,prix_litre,quantite,prix_total,distance,conso) 
    		VALUES ('$ref_voiture','$date','$station','$prix_litre','$quantite','$prix_total','$distance','$consommation')") or die ("Execution de la requête impossible");
     
    	mysql_close($connexion);
     
     
     
    ?>
    Les variables sont envoyées à ce script depuis un formulaire.

    Mon problème vient du fait que ma fonction mysql_query retombe sur le die avec le joli message "Execution de la requête impossible"... Mais cependant ma ligne est bien insérée dans la table, pourquoi donc??

    Si vous avez une idée je suis preneur.

    @+

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Par défaut
    euh, la synthase ne devrait pas etre la suivante pour ta requête ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $req1 = mysql_query("INSERT INTO consommations (ref_voiture,date,station,prix_litre,quantite,prix_total,distance,conso) 
    		VALUES ('$ref_voiture','$date','$station','$prix_litre','$quantite','$prix_total','$distance','$consommation')"); 
    mysql_query($req1) or die ('Execution de la requête impossible'.$req1.'<br>'.mysql_error());

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Par défaut
    Là tu t'es méchamment embrouillé dans ton truc. Tu envoies un résultat de mysql_query dans un autre mysql_query, bref tu t'es mélangé les pinceaux.

    Nan ma syntaxe ne doit pas etre trop mauvaise, il doit y avoir une subtilité ou alors le type de mes variables ne lui plait pas.

  4. #4
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Essaye le die ainsi tout de même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    die ('Execution de la requête impossible'.$req1.'<br>'.mysql_error());
    tu apprendras peut être quelque chose sur l'execution de ta requête

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 13
    Par défaut
    En fait le die ne venait pas de cette fonction là mais de la page qui est appelée à la suite par la fonction "header"

    Donc c'est bon ma requête fonctionne correctement

    Merci à vous quand meme

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Une idée farfelue au hasard :
    Imagine que tu appelles ton script deux fois, la première fois ce sera transparent et l'insert se fera bien, mais la deuxième fois cela pourra créer une erreur (contraintes d'unicité par exemple) et du coup cela te renverra l'erreur.

    Je te dis ça parce que j'avais eu un problème un peu similaire une fois et que j'avais trouvé que la cause était un double appel à la fonction, juste à temps car j'avais déjà la corde accrochée au plafond

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

Discussions similaires

  1. [DOM] [Xerces] Insertion d'une entité
    Par Traroth dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 19/05/2008, 09h28
  2. Bulk insert et caractère accentué
    Par slc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/04/2003, 12h52
  3. probleme d'insertion d'un Float
    Par neness dans le forum Débuter
    Réponses: 3
    Dernier message: 07/01/2003, 12h32
  4. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33
  5. Réponses: 4
    Dernier message: 28/09/2002, 00h00

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