Page 1 sur 1

pdo lastInsertId

Posté : 25 avr. 2008, 10:19
par mcorgnet
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 ?

Posté : 25 avr. 2008, 10:25
par yaug
Hum.
Et si tu fait un insert plutot qu'un replace?

Posté : 25 avr. 2008, 10:27
par mcorgnet
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 :|