使用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获取最后插入的行的主要内容,如果未能解决你的问题,请参考以下文章
在 PDO(使用 MySQL)中执行 INSERT 后获取最后插入的行?