php - 使用 PDO 准备好插入后获取最后一个插入 ID

标签 php postgresql pdo prepared-statement

我正在将 PHP PDO 与 PostgreSQL 一起用于一个新项目。

给定以下函数,我如何返回刚刚插入的行的 id? 它不像现在的样子。

function adauga_administrator($detalii) {
    global $db;
    $ultima_logare = date('Y-m-d');

    $stmt = $db->prepare("INSERT INTO site_admins (sa_nume, sa_prenume, sa_user_name, sa_password, sa_email, sa_id_rol, sa_status, sa_ultima_logare) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
    $stmt->bindParam(1, $detalii['nume']);
    $stmt->bindParam(2, $detalii['prenume']);
    $stmt->bindParam(3, $detalii['username']);
    $stmt->bindParam(4, md5(md5($detalii['parola'] . SIGURANTA_PAROLE) . SIGURANTA_PAROLE));
    $stmt->bindParam(5, $detalii['email']);
    $stmt->bindParam(6, $detalii['rol'], PDO::PARAM_INT);
    $stmt->bindParam(7, $detalii['status'], PDO::PARAM_INT);
    $stmt->bindParam(8, $ultima_logare);    
    $stmt->execute(); 

    $id = $db->lastInsertId();
    return $id;
}

最佳答案

来自Manual :

Returns the ID of the last inserted row, or the last value from a sequence object, depending on the underlying driver. For example, PDO_PGSQL() requires you to specify the name of a sequence object for the name parameter.

应该是这样的:

return $db->lastInsertId('yourIdColumn');

[编辑] 更新文档链接

关于php - 使用 PDO 准备好插入后获取最后一个插入 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057954/

相关文章:

php - MySQL 查询 : JOIN multiple tables with ORDER BY

php - 使用 mysqli_connect() 连接到 Cloud SQL 数据库

php - 交叉引用 MySQL 条目

ruby-on-rails - 更新 Rails 4 和 PostgreSQL json 列中的单个键/值对?

django - PostgreSQL + Django + South 的第一步

sql在查询之间不显示空值

php pdo mysql fetch 返回一般错误?

php - FFMPEG - 图像到视频

php - 在 Laravel 中为 Controller 传递默认数据

PHP/PDO - 检查 URL 是否包含特定的域列表