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 :

Insertion en double


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 26
    Points
    26
    Par défaut Insertion en double
    Bonjour tout le monde, j'ai un problème que sur lequel je travaille depuis deux semaines. Quand je fait une insertion dans une table qui possède une clé auto-increment depuis php, l'insertion se fait en double, mais pourtant lorsque j'exécute la même requête dans phpMyAdmin l'insertion ne se fait qu'une fois ???

    Ce n'est pas le code php puisque tout de suite après ma requête je vide ma variable req ( unset($req)).

    Est-ce que quelqu'un à déjà vu ce problème qui est entrain de me rendre fou!

    Merci beaucoup!

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    en tout cas je ne pense pas que ca vienne de MySQL
    est ce que tu ne la lancerais pas deux fois à travers des fonctions par exemple?
    ce qui est sur, c'est que si tu ne fais qu'une insertion MySQL, il n'y aura qu'une ligne
    apres faut regarder le code

    Michel

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Je ne sait vraiment pas d'ou s'a vient, tout ce que je fait c'est:

    1-Créer une instance de l'objet que je veut insérer
    et
    2-J'appelle sa fonction qui sert à insérer dans la bd

    J'ai aussi fait un test sans utiliser mes classes, juste me connecter à la BD et faire un insert direct à la BD : Ça donne le même résultat!!

    Donc je suis pratiquement sur que ça vient de mysql?

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    sans utiliser les classes, peux tu donner le code que tu utilise?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Oui voila ce que ca dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $conn = mysql_connect("localhost", "root", ""); // Connexion à MySQL
    			mysql_select_db("projetRecette"); //Sélectionne la BD
     
    $req = "INSERT INTO RECETTE VALUES(NULL,'BOEUF', 'utilisateur', 'nomRecette', 60, 60, 5, 'preparation', '2006-11-01');";
    $reponse = mysql_query($req);
    unset($req);
    mysql_close($conn);
    Et voici la structure de la table recette
    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
     
    CREATE TABLE RECETTE (
      no_RECETTE INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      FK_code_TYPE_RECETTE VARCHAR(10) NOT NULL,
      FK_login_UTILISATEUR VARCHAR(20) NOT NULL,
      nom_RECETTE VARCHAR(80) NULL,
      tempPrep_RECETTE INTEGER UNSIGNED NULL,
      tempCuiss_RECETTE INTEGER UNSIGNED NULL,
      difficulte_RECETTE TINYINT UNSIGNED NULL,
      preparation_RECETTE MEDIUMTEXT NULL,
      dateAjout_RECETTE DATE NULL,
      PRIMARY KEY(no_RECETTE),
      INDEX RECETTE_FKIndex1(FK_login_UTILISATEUR),
      INDEX RECETTE_FKIndex2(FK_code_TYPE_RECETTE)
    );
    Merci!

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    deja je suis étonné par le NULL. enleve le à mon avis

    et avec cela tu as 2 enregistrements?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    mmm Le null c'est correct sur un champ auto-increment, mais meme si je l'enleve sa donne le meme résultat.

    Et pour répondre à ta question, ca me donne toujours deux enregistrements

  8. #8
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    euh la je t'avoue que je ne comprends pas.
    tu n'utilise que cette fonction lors de ton test pour voir s'il y a 2 valeurs?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Oui c'est tout ce qu'il y a dans le fichier php qui est chargé! Et ca m'inquiète énormément !

    Je crois que je vais me résoudre à utiliser un "SELECT MAX(no_RECETTE)" et incrémenter moi même ma clé!

    Merci pour l'aide!

Discussions similaires

  1. [PDO] Insertion en double
    Par yvancoyaud dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 25/02/2013, 13h03
  2. Requête d'insertion avec double sélection
    Par Viammi dans le forum Langage SQL
    Réponses: 12
    Dernier message: 05/05/2012, 22h55
  3. Problème d'insertion avec double TIMESTAMP
    Par Tchupacabra dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 03/12/2007, 09h23
  4. Insertion en double dans ma bdd
    Par n@n¤u dans le forum Hibernate
    Réponses: 13
    Dernier message: 20/07/2007, 15h33
  5. [Oracle] Insertions en double
    Par tonton93 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/03/2007, 20h39

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