pdo lastInsertId

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 : pdo lastInsertId

par mcorgnet » 25 avr. 2008, 10:27

J'utilise le replace pour ne pas avoir à gérer les "update" et les "insert", et donc j'ai une seule requête dans ma méthode "save".

Ma base de données ne changera pas, pour info.

Je cherche une autre solution, et je me suis dit que ça devait pouvoir se trouver ...

EDIT :

En fait, en mettant mon lastinsertid avant le commit, ça fonctionne ...

C'était tout con :|

par yaug » 25 avr. 2008, 10:25

Hum.
Et si tu fait un insert plutot qu'un replace?

pdo lastInsertId

par mcorgnet » 25 avr. 2008, 10:19

Bonjour,

Je cherche à récupérer le dernier id inséré après un pdostatement.

$stmt = Chrono::$myConnexion->prepare("REPLACE INTO participants (id, nom, prenom) values (:id, :nom, :prenom)");
$stmt->bindParam(":id", $this->id);
$stmt->bindParam(":nom", $this->nom);
$stmt->bindParam(":prenom", $this->prenom);
$stmt->execute();
si je fais :
$stmt->lastInsertId();
J'ai une erreur :

Fatal error: Call to undefined method PDOStatement::lastInsertId() in

En gros, sur un pdostatement, lastinsertid ne fonctionne pas ... Et si je le fais
Chrono::$myConnexion->lastInsertId();
ça me retourne toujours 0 ...

Je pense que c'est à cause de mon "replace" ... Mais comment régler le problème ?