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

Langage PHP Discussion :

Utilisation de mysql_insert_id();


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 32
    Par défaut Utilisation de mysql_insert_id();
    Bonjour,
    J'ai un problème avec Mysql_insert_id().
    En effet cette fonction me renvoie une valeur nulle alors que juste avant la table où j’insère une ligne est auto incrémenté.
    Ce problème est fâcheux car je récupère ce nombre pour donner le nom à un répertoire.
    je vous mets le morceaux de code:
    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
    $dns = 'mysql:host=himalia;dbname=autoadhoc;port=3307';
    $utilisateur = 'toto';
    $motDePasse = 'titi';
    $bdd = new PDO($dns, $utilisateur, $motDePasse);
    //$bdd = new PDO('mysql: host=localhost;port =3307;dbname=autoadhoc','adhoc','adhoc');
    }
    catch(Exception $e) //en cas d'erreur
    {
    //message erreur
    	echo "probleme de connection";
    }
    //debut de la transaction
    $bdd->beginTransaction();
    $str_insert = " INSERT INTO traitement(createur,demandeur,marché,sec1,code,fin,mod,exp,achat,sec,fromscratch) values ('$createur','$demandeur','$march','$sec1','$an','$per','$ans','$periode','$mod','$exp','$achat','$sec','$fromscratch')";
    $o_insert = mysql_query($str_insert);
    $id = mysql_insert_id();
    Si vous arrivez à m'aider je vous serait éternellement reconnaissant.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Par défaut
    Bonjour,

    Le résultat sera null car rien n'a été ajouté dans la base. Enfin d'après le code donné rien ne devrait être ajouté.
    Tu utilises l'extension PDO pour te connecter à la base et ensuite l'extension mysql (à ne plus utiliser, préfère mysqli ) pour ta requête. Et si je ne me trompe aucune communication ne peut être faite entre ces deux extensions .

    Donc je ne comprend même pas qu'un tuple ait pu s'ajouter dans la base .

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 32
    Par défaut
    Merci j'ai résolu le problème tu avais raison c'était cela j'avais pas fais attention que j'étais partie sur deux extension différentes.
    J'ai du revoir tout mon code parce que par la suite j'avais alterné les 2 extension.
    Après tu avais raison sur l'insertion elle n'a pas lieu. Je pensais qu'elle avait lieu parce que j'avais créer une ligne de test et que je l'avais complétement zapper.
    l'erreur est la suivantes:
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'mod,exp,achat,sec,fromscratch) VALUES(:createur,:demandeur,:marché,:sec1,:debut' à la ligne 1' in D:\wamp\www\recuperation\traitement.php on line 83
    Voici la lignes qui fait défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $str_insert = " INSERT INTO traitement (createur,demandeur,marché,sec1,debut,fin,mod,exp,achat,sec,fromscratch) VALUES(:createur,:demandeur,:marché,:sec1,:debut,:fin,:mod ,:exp ,:achat,:sec,:fromscratch')";
    			$o_insert = $bdd->exec($str_insert);
    			$o_insert>execute(array(
    								'createur' => $createur,
    								'demandeur' => $demandeur,
    								'marché' => $march,
    								'sec1' => $sec1,
    								'debut' => $debut,
    								'fin' => $fin,
    								'mod' => $mod,
    								'exp' => $exp,
    								'achat' => $achat,
    								'sec' => $sec,
    								'fromscratch' => $fromscratch ));
    Merci encore une fois pour ton aide

Discussions similaires

  1. Utiliser mysql_insert_id(), LAST_INSERT_ID(), ou DESC LIMIT 1 ?
    Par Alexandrebox dans le forum Requêtes
    Réponses: 14
    Dernier message: 31/12/2006, 17h21
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 16h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 13h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 17h01
  5. Réponses: 2
    Dernier message: 21/03/2002, 00h01

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