Php 如何从PDO获取上次插入的行id

Php 如何从PDO获取上次插入的行id,php,sql,pdo,Php,Sql,Pdo,我遵循PHP中的mvc结构,希望检索最后插入的行ID 我创建了以下sql代码: $sql = "INSERT INTO song (artist, track, link) VALUES (:artist, :track, :link)"; $query = $this->db->prepare($sql); $query->execute(array(':artist' => $artist, ':track' => $track, ':link' => $

我遵循PHP中的mvc结构,希望检索最后插入的行ID

我创建了以下sql代码:

$sql = "INSERT INTO song (artist, track, link) VALUES (:artist, :track, :link)";
$query = $this->db->prepare($sql);
$query->execute(array(':artist' => $artist, ':track' => $track, ':link' => $link));

echo $query->lastInsertId(); // To retrieve last inserted row ID.
但不幸的是,我遇到了这个错误:
致命错误:调用未定义的方法PDOStatement::lastInsertId()

我也尝试过这个链接,但没有为我工作,所以我会很高兴,如果你帮我检索ID

我还在这里共享我的controller.php文件


你可以试试下面的方法-

$query = "INSERT INTO song (artist, track, link) VALUES (:artist, :track, :link)";
$stmt = $pdo->prepare($query);

$params = array(
    "artist" => $artist,
    "track" => $track,
    "link" => $link,
);

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

$insert_id = $pdo->lastInsertId();
你快到了

如果您查看,它是在数据库句柄上调用的-您当前正在语句中调用它

您只需拨打:

$this->db->lastInsertId();

请尝试使用
$this->DB-lastInserId()
-您不会在语句中使用它,而是在数据库连接中使用它。现在我遇到两个错误1。注意:未定义的属性:listings\u for\u sale\u model:$DB 2。致命错误:调用未定义的函数lastInserId()$this->DB-lastInsertId()(他在插入的末尾忘记了一个t)叹气-这只是打字错误。它是
$this->db->lastInsertId()
。你有正确的功能,但调用它的方式不对。@andrewsi工作得很好。现在我得到最后一个插入的行ID:)@Alagaros-谢谢。我已经修改了它-我不确定它是否不区分大小写,但是确保答案与文档匹配没有害处。
$this->db->lastInsertId();