PDO - 获取当前插入的 ID

8
$query = "INSERT INTO news VALUES (NULL, :param1 , :param2  )";
$stmt = $pdo->prepare($query);

$params = array(
    "param1" => $p['title'],
    "param2" => $p['body'],
);

$data = $stmt->execute($params);

// here i would like get current inserted ID. Is possible?

$id = $data->id ???? ;

如何制作这个?


1
请查看此链接 -> http://www.php.net/manual/zh/pdo.lastinsertid.php - Rikesh
可能是重复的问题 -> http://stackoverflow.com/questions/1961471/how-to-retrieve-the-id-of-the-last-inserted-row-when-using-pdo-in-php - Rikesh
3个回答

21
$query = "INSERT INTO news VALUES (NULL, :param1 , :param2  )";
$stmt = $pdo->prepare($query);

$params = array(
    "param1" => $p['title'],
    "param2" => $p['body'],
);

$data = $stmt->execute($params);

所以你可以这样做来获取最后插入的Id

$last_id = $pdo->lastInsertId();

2
最后插入的ID似乎暗示了可能存在竞争条件。如果同时发生两个PDO语句,是否有可能lastInsertId返回另一个插入语句的ID? - MikeSchem

4

使用:

$last_insert_id = $pdo->lastInsertId();

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接