php - 为什么在我的代码中 PDO lastInsertId() 返回 0?

标签 php mysql pdo

我试图使用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();
}

最佳答案

代码中没有 INSERT。

我猜您正在寻找表中最大的 id。 那么答案就是:

SELECT MAX(id) FROM links

关于php - 为什么在我的代码中 PDO lastInsertId() 返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28319460/

相关文章:

php - 使用Mysql + PHP实现的投票系统(带账号)性能

php - MySQL select 后没有换行符

php - 无法将整数数据插入MySQL,它插入为0

php - CakePHP:插件无法在主 src 中扩展 AppController

php - Laravel:是否可以将 Session 作为依赖项注入(inject)?

MySQL全表扫描

php - MySQL自连接表

php - 解决 PHP PDO 错误 : SQLSTATE[42000] [1044]

php - 在谷歌地图、PHP 和 MySQL 上进行附近位置搜索

php - MySQL/PHP 多查询 : 3 statements, 2 个结果