Récupérer dernier ID
Résolu
LaChaux78
Messages postés
583
Date d'inscription
Statut
Membre
Dernière intervention
-
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'arrive presque à la fin de ma partie administration et voilà que je tombe sur un p'tit problème.
Lorsque je veux récupérer le dernier ID voici l'erreur qui m'est retourné.
Voici la page concerné pouvez-vous m'aider s'ils vous plait, je vous remercie.
J'arrive presque à la fin de ma partie administration et voilà que je tombe sur un p'tit problème.
Lorsque je veux récupérer le dernier ID voici l'erreur qui m'est retourné.
Fatal error: Call to a member function lastInsertId() on null in
Voici la page concerné pouvez-vous m'aider s'ils vous plait, je vous remercie.
$action = 'new'; $a = !empty($_GET['a']) ? $_GET['a'] : NULL; $submit = !empty($_POST['submit']) ? $_POST['submit'] : NULL; $haction = !empty($_POST['haction']) ? $_POST['haction'] : NULL; $idrep = !empty($_REQUEST['idrep']) ? $_REQUEST['idrep'] : NULL; $drepet = !empty($_POST['drepet']) ? dw2m($_POST['drepet']) : ''; $idpers = !empty($_POST['idpers']) ? $_POST['idpers'] : ''; $idloc = !empty($_POST['idloc']) ? $_POST['idloc'] : ''; switch($a) { case 'new': $action = 'new'; break; default : $action = 'new'; break; } if($submit) { switch($haction) { case 'new': // Construction de la requete d'ajout $sql = "INSERT INTO cdc_repetitions (drepet, idloc) VALUES (:drepet, :idloc)"; $datas = array('drepet' => $drepet, 'idloc' => $idloc); $result = executeQuery($sql,$datas); $typenr = "enregistré"; $reqaj = $sql; $idrep = $bdd->lastInsertId(); $presents = isset($_POST['presents']) ? $_POST['presents'] : NULL; if (is_array($presents)) { foreach($presents as $idpers) { $sql = "INSERT INTO cdc_assister (idpers, idrep) VALUES (:idpers, :idrep)"; $datas = array('idpers' => $idpers, 'idrep' => $idrep); $result = executeQuery($sql,$datas); $typenr = "enregistré"; $reqaj = $sql; } } $success = "<span class='success'>Les présences à la répétition - ".trim(stripslashes(" du " . dateFR("$drepet")))." - a été $typenr.</span>"; break; } }
A voir également:
- Récupérer dernier ID
- Recuperer message whatsapp supprimé - Guide
- Dernier iphone - Guide
- Récupérer mon compte facebook désactivé - Guide
- Id telephone - Guide
- Comment récupérer un compte facebook piraté - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, que vaut $bdd?
Bonsoir,
En haut de ma page j'ai
require("libs/init.php");
et dans le fichier init.php j'ai les 2 fonctions
En haut de ma page j'ai
require("libs/init.php");
et dans le fichier init.php j'ai les 2 fonctions
function bdd() { $PARAM_hote ='**********'; $PARAM_nom_bdd ='*********'; $PARAM_utilisateur ='************'; $PARAM_mot_passe ='******'; try { $bdd = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bdd, $PARAM_utilisateur, $PARAM_mot_passe); $bdd->exec("SET CHARACTER SET utf8"); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(Exception $e) { echo 'Impossible de se connecter à la base de donnée</br>'; echo 'Erreur : ' . $e->getMessage() . '<br />'; echo 'N° : ' . $e->getCode(); } return $bdd; } // Fonction qui sert à faire les requêtes SQL // Contient déjà le try/catch function executeQuery($sql,$datas = NULL) { $bdd = bdd(); //exécution de la requête try { $requete = $bdd->prepare($sql); $requete->execute($datas); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); exit(0); // en cas d'erreur.. arrête le script ! } return $requete; }
Il faut ajouter un nouvelle fonction à ton fichier init.php
et donc dans ton code
//Fonction à utiliser pour faire un INSERT // return : l'id auto-incrémenté généré par l'insertion function QueryInsert($sql,$datas = NULL) { $bdd = bdd(); //exécution de la requête try { $requete = $bdd->prepare($sql); $requete->execute($datas); $newid = $bdd->lastInsertId(); } catch(Exception $e) { // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); exit(0); // en cas d'erreur.. arrête le script ! } return $newid; }
et donc dans ton code
case 'new': // Construction de la requete d'ajout $sql = "INSERT INTO cdc_repetitions (drepet, idloc) VALUES (:drepet, :idloc)"; $datas = array('drepet' => $drepet, 'idloc' => $idloc); $idrep = QueryInsert($sql,$datas); // récupère l'id AutoIncrémenté de l'insert $typenr = "enregistré"; $reqaj = $sql //la suite de ton code ....