使用php获取最后插入的行

Posted

技术标签:

【中文标题】使用php获取最后插入的行【英文标题】:Getting last inserted row in access using php 【发布时间】:2016-10-18 10:50:13 【问题描述】:

我正在通过 php 插入 Access 数据库,但我正在努力获取最后插入行的 ID。我以前有这个工作,但我们的服务器坏了,我不得不重新编写它,但它没有返回 - 我确定我是这样做的:

$idquery = "select @@IDENTITY from [Businesses]";

try
    $rs = $conn->execute($query);

    $idReturned = $conn->execute($idquery);

    echo json_encode($idReturned); 
 catch(com_exception $e)
    echo($e);

插入成功,但json_encode($idReturned); 为空白,知道为什么吗?

【问题讨论】:

你没有显示$idquery的值 $idquery = "select @@IDENTITY from [Businesses]"$query 的值是未知的。 select @@IDENTITY 似乎不需要表名,但我不确定删除表名是否能解决问题。 @ChrisLear $query 的值无关紧要,它可以很好地插入数据库中,它只是我试图获取的 id。 @ChrisLear 谢谢,但删除表名没有解决:( 【参考方案1】:

您在使用 PDO 吗?

如果是,您可以执行以下操作:

$id = $con->lastInsertId();

【讨论】:

我得到异常 'com_exception' 和消息 '来源:ADODB.Connection 描述:参数类型错误,超出可接受范围,或相互冲突【参考方案2】:
<?php
// Assume $dbh connection handle is already established

$sql = "INSERT INTO business (name) VALUES ('BUS')";

$sth = $dbh->prepare($sql);

$sth->execute();

$lastId = $dbh->lastInsertId(); //This is where you get last inserted ID

?>

取决于数据库提供者,可能存在需要为该表设置“主键”的情况

【讨论】:

我收到异常 'com_exception' 和消息 '来源:ADODB.Connection 描述:参数类型错误、超出可接受范围或相互冲突

以上是关于使用php获取最后插入的行的主要内容,如果未能解决你的问题,请参考以下文章

如何从最后插入的行中获取值? [复制]

如何在 SQLite 中获取最后插入的行 guid?

在 PDO(使用 MySQL)中执行 INSERT 后获取最后插入的行?

如何使用 Zend_Db 获取 Sqlite 数据库的最后插入 ID

从最后插入的行获取最后插入 id

Symfony 2 - 从表中获取最后插入的行