Problème avec l'id

Problème avec l'id - PHP - Programmation

Marsh Posté le 15-06-2018 à 02:10:32    


Bonsoir j’ai un sérieux problème sur lequel j’ai passé des heures sans pouvoir le résoudre aidez-moi s’il vous plait .
J’ai une table dans laquelle je stock des données pour ça je n’ai aucun problème ça marche comme je le souhaite, seulement à chaque enregistrement que j’enregistre dans la table je souhaite du coup récupérer son id (variable qui s’incrémente) qui est inscrit au niveau de la première colonne de la table .
Je voudrais récupérer cette id dès que j’effectue un enregistrement. Pour ça je veux utiliser SCOPE_IDENTITY() pour être sure de pouvoir récupérer la valeur de l’id que j’ai moi-même envoyé dans la table , car tel que j’ai conçu mon application d’autres personne peuvent en même temps que moi enregistrer des données dans cette table et je veux éviter coute que coute de prendre l’id qu’une autre personne a créé .
Mon probleme est le suivant :
1- je ne sais pas comment écrire la requête qui utilise SCOPE_IDENTITY() juste après la requête d’insertion  
2 – Comment récupérer la valeur de l’id dans une variable
J’ai beau cherché dans le net mais je ne trouve pas. Finalement meme ca me brouille.
Je rappelle que j’utilise la méthode PDO et une requête préparée pour l’enregistrement des données dans ma table .  
 
voici mon code
 

Code :
  1. $req = $bdd->prepare('INSERT INTO plan_op_invest(numero_prjt,identite_compte,lannee,laperiode,nbr,pu,total)VALUES(:numero_prjt,:identite_compte,:lannee,:laperiode,:nbr,:pu,:total)');
  2.                                          $req->execute(array(
  3.                                                     'numero_prjt'=> $numprjt,
  4.          'identite_compte'=> $cpt,
  5.           'lannee'=> $annee_choix,
  6.           'laperiode'=> $periode ,
  7.           'nbr'=> $nbre,
  8.            'pu'=> $punit,
  9.            'total'=> $total
  10.         ));
  11.                                     $req->closeCursor();


Merci

Reply

Marsh Posté le 15-06-2018 à 02:10:32   

Reply

Marsh Posté le 15-06-2018 à 10:16:04    

Bonjour,
 
https://docs.microsoft.com/fr-fr/sq [...] erver-2017
 
lastInsertId() ne suffirait pas ? Auquel cas l'id auto-incrémentée est peut-être une mauvaise idée.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 15-06-2018 à 18:17:40    

Par contre, lastInsertId() fonctionnera comme attendu uniquement si tu ne clos pas la connexion à la bdd entre son appel et l'insertion.
Sinon il y a en effet le risque que quelqu'un d'autre ait inséré une ligne entre temps et donc de récupérer le mauvais id. Néanmoins je pense que si tu clos la connexion alors lastInsertId() retournera une erreur car il n'interviendra pas après une insertion.


Message édité par MaybeEijOrNot le 15-06-2018 à 18:17:58

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed