PDO::lastInsertId

(no version information, might be only in CVS)

PDO::lastInsertId --  Returns the ID of the last inserted row or sequence value

Description

string PDO::lastInsertId ( [string name] )

Returns the ID of the last inserted row, or the last value from a sequence object, depending on the underlying driver.

注: This method may not return a meaningful/consistent result across different PDO drivers, because the underlying database may not even support the notion of auto-increment fields or sequences.

参数

name

Name of the sequence object from which the ID should be returned.

返回值

If a sequence name was not specified for the name parameter, PDOStatement::lastInsertId() returns a string representing the row ID of the last row that was inserted into the database.

If a sequence name was specified for the name parameter, PDOStatement::lastInsertId() returns a string representing the last value retrieved from the specified sequence object.

If the PDO driver does not support this capability, PDO::lastInsertID() triggers an IM001 SQLSTATE.


add a note add a note User Contributed Notes
opik at opik dot ru
20-Dec-2005 10:10
Simple example:
<?php
try
{
  
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', 'passowd');

  
$smf = $dbh->prepare("INSERT INTO test (`numer`) VALUES (?)");
 
  
$a = mt_rand(1, 100);
  
$smf->bindParam(1, $a, PDO::PARAM_INT);
  
$smf->execute();
   print
$dbh->lastInsertId().'<br />';

  
$a = mt_rand(1, 100);
  
$smf->bindParam(1, $a, PDO::PARAM_INT);
  
$smf->execute();
   print
$dbh->lastInsertId();

  
$dbh = null;
}
catch (PDOException $e) {
   print
"Error!: " . $e->getMessage() . "<br/>";
   die();
}
?>