我正在将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; }
从手册:
根据基础驱动程序,返回最后插入的行的ID或序列对象的最后一个值。例如,PDO_PGSQL()要求您为name参数指定序列对象的名称。
应该是这样的:
return $db->lastInsertId('yourIdColumn');
[编辑]更新文档链接