Récupérer dernier ID
Résolu
LaChaux78
Messages postés
607
Statut
Membre
-
LaChaux78 Messages postés 607 Statut Membre -
LaChaux78 Messages postés 607 Statut Membre -
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 recuperer une video sur youtube - Guide
4 réponses
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 ....