我正在尝试使用lastInsertId()从数据库中获取最后一条记录,但它仍然保持重新调整0.我不明白为什么会出现此问题。这是我的代码。 感谢
$query = "SELECT url FROM links WHERE code = :code";
$get = $db->prepare($query);
$get->execute(array(
":code" => $code
));
if($get->rowCount()) {
$url = $get->fetch(PDO::FETCH_OBJ)->url;
$status = substr(get_headers($url)[0],9,3);
if(intval($status) == 301) {
$last = $db->lastInsertId();
$query = "SELECT url FROM links WHERE id = :id";
$send = $db->prepare($query);
$send->execute(
":id" => $last
);
$lastUrl = $send->fetch(PDO::FETCH_OBJ)->url;
header("Location:{$lastUrl}");
}
else {
header("Location:{$url}");
}
die();
}
答案 0 :(得分:1)
代码中没有INSERT。
我猜你正在寻找表中最大的id。 然后答案是:
SELECT MAX(id) FROM links
答案 1 :(得分:0)
lastInsertId()适用于上一个查询。您的查询是SELECT类型,这就是它无法工作的原因。您可以在INSERT查询后使用lastInsertId()。如果您想知道最后一条记录,您可以使用max(id)或按id desc排序并获得第一条记录。