[RESOLU] Récupérer la valeur d'un auto_increment

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Récupérer la valeur d'un auto_increment

Re: Récupérer la valeur d'un auto_increment

par bernard25 » 18 janv. 2020, 17:06

Merci beaucoup, je vais suivre ta solution

Re: Récupérer la valeur d'un auto_increment

par Saian » 18 janv. 2020, 16:45

A confirmer mais même s'il était possible de récupérer la prochaine valeur de l'auto increment, ce n'est pas à faire. Une ligne pourrait être insérée par un autre script entre le moment ou ton code récupère la valeur d'auto increment et le moment ou il procèdes à l'insert. Du coup l'id serait fausse.

La procédure c'est de faire l'insert puis récupéré l'id de la ligne insérée avec lastinsertid. C'est pour ça que je te dis que tu dois faire un insert sans l'image puis faire un update avec l'image.

EDIT
Et non ça ne t'obliges pas à faire l'upload et l'update séparément de l'insert. Dans ton script simplement tu fais l'insert, tu récupères l'id, tu renommes le fichier uploadé, puis tu fais l'update de la colonne photo where id = lastinsertid.

Re: Récupérer la valeur d'un auto_increment

par bernard25 » 18 janv. 2020, 16:39

Bonjour Saian,

Merci pour cette réponse rapide,

Effectivement, j'y ai pensé mais cela implique un premier insert, recupération de l'id, upload image puis update

je pensais que l'on pouvais récupérer le dernier id comme

Code : Tout sélectionner

ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Re: Récupérer la valeur d'un auto_increment

par Saian » 18 janv. 2020, 16:26

Salut, bah en principe tu utilises la méthode PDO::lastInsertId après avoir procédé à l'insert pour récupérer l'id de la ligne insérée.
https://www.php.net/manual/fr/pdo.lastinsertid.php

Donc tu peux faire un insert sans l'image puis un update.

Récupérer la valeur d'un auto_increment

par bernard25 » 18 janv. 2020, 16:22

Bonjour à Tous,

php 7.4 mysql 5.7 :

Pour une galerie photos, j'aimerai enregistrer le champ photo comme ceci : $lieu.$id

L'enregistrement 654 contient la photo photo654.jpg

J'essaie en vain de récupérer la valeur du champ id autoincrement

Code : Tout sélectionner

$reponse = $bdd->prepare('SELECT * FROM '.$exterieurs_BDD.' ORDER BY id DESC'); $reponse->bindParam(':id', $id, PDO::PARAM_INT); $reponse->bindParam(':menu', $menu, PDO::PARAM_STR); $reponse->bindParam(':titre', $titre, PDO::PARAM_STR); $reponse->bindParam(':dossier', $dossier, PDO::PARAM_STR); $reponse->bindParam(':photo', $photo, PDO::PARAM_STR); $reponse->execute(); $donnees = $reponse->fetch(); $nombre_enregistrements = $donnees['id'] + 1;
Je récupère le dernier id +1 mais si je supprime un enregistrement j'aimerai avoir la 'Vrai' dernière valeur

Merci de votre aide